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; }
给出步骤数