和3n+1类似,注意要用long long,int会TLE。
代码如下:
1 #include<stdio.h> 2 int main() 3 { 4 long long n, m, term, i, num=1; 5 scanf("%lld%lld", &n, &m); 6 while(n>=0 || m>=0) 7 { 8 term=1; 9 i=n; 10 while(i<=m && i!=1) 11 { 12 if (i%2 == 0) 13 { 14 i/=2; 15 } 16 else 17 { 18 i=3*i+1; 19 if (i>m) 20 break; 21 } 22 term++; 23 } 24 printf("Case %lld: A = %lld, limit = %lld, number of terms = %lld\n", num++, n, m, term); 25 scanf("%lld%lld", &n, &m); 26 } 27 return 0; 28 }