心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

刘汝佳在《算法竞赛入门经典》中推荐的题目,不是太难。

以下是我的代码:

#include<stdio.h>
#include
<math.h>
long f(double a,double limit)
{
    
long re=1;
    
while(a!=1&&a<=limit)
    
{
       
if(fmod(a,2)==1)
       
{
          a
=3*a+1;
          
if(a>limit) break;
       }

       
else a/=2;
       re
++;
    }

    
return re;
}

int main()
{
    
double a,limit;
    
long num=0;
    
while(scanf("%lf%lf",&a,&limit)==2)
    
{
       
if(a==-1&&limit==-1break;
       num
++;
       printf(
"Case %ld: A = %.0lf, limit = %.0lf, number of terms = %ld\n",num,a,limit,f(a,limit));
    }

return 0;
}
posted on 2010-01-06 20:39 lee1r 阅读(605) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理