刘汝佳在《算法竞赛入门经典》中推荐的题目,不是太难。
以下是我的代码:
#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==-1) break;
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 阅读(613)
评论(0) 编辑 收藏 引用 所属分类:
题目分类:基础/模拟