题意:

给定数字A,还有limit,当a是偶数执行第三步a=a/2,然后回到第二步;当a是奇数是执行第三步,a=a*3+1,然后回到第二步;停止执行的条件是回到第二步时a=1,或者在执行第三步后A的值超过了limit;输出运算过程中,没有超过limit的值的个数,包括初始值A。

#include<iostream>
using namespace std;
long long int a,b,co,ta;
int case1=0;

int main(){
while(cin>>a>>b&&a!=-1&&b!=-1){
co=1;ta=a;
while(a<=b&&a!=1){
if(a%2==0){
a/=2;
co++;
}
else{
a=a*3+1;
if(a<=b) co++;
}
}
printf("Case %d: A = %lld, limit = %lld, number of terms = %lld\n",++case1,ta,b,co);
}

return 0;
}