UVA 694
这题是100的延伸,给一个数,和一个限制,求出这个数会停在规定步骤的第二步,或者超出限制数,最后
#include<stdio.h>
int main()
{
long long a,b,n,js=1,A;//因题目给出的数据较大,所以用long long
while(scanf("%lld%lld",&A,&b))
{
if(A<0&&b<0)
break;
n=1;
a=A;
while(a<=b&&a!=1)
{
if(a%2==0)
a/=2;
else if(a%2==1)
a=3*a+1;
n++;
} //按100的做法
if(a>b)
n--;//因为停在步骤2和步骤4的算法不大相同,所以这里减一
printf("Case %lld: A = %lld, limit = %lld, number of terms = %lld\n",js++,A,b,n);
}
return 0;
}
给出步骤数

浙公网安备 33010602011771号