uva694

来源:互联网 发布:linux 删除命令行 编辑:程序博客网 时间:2024/05/19 14:56

好坑啊,说a不会太大,但就是会超过二的32次

代码略差,可以的话希望有人帮忙优化一下,谢谢了

#include<iostream>
using namespace std;
int main()
{
long long a, b, i, co = 0;
cin>>a>>b;
while(1)
{
if(a < 0 && b < 0) break;
++co;
long long p = a, q = b;
i = 1;
while(p - 1)
{
if(p % 2 == 0)
{p /= 2; ++i;}
else if((p * 3 + 1) > q)
break;
else{
  p = p * 3 + 1; 
  ++i;
  }
}
cout<<"Case "<<co<<": A = "<<a<<", limit = "
   <<b<<", number of terms = "<<i<<endl;
cin>>a>>b;
}
return 0;
}


原创粉丝点击