UVa 694 The Collatz Sequence

UVa 694 The Collatz Sequence

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

以下是我的代码:

#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;
}

你可能感兴趣的:(UVa 694 The Collatz Sequence)