#include <iostream>
using namespace std;
int A(long long a)
{
int n=0;
if(a==1)
return 3;
while(a-1) //使用三目運算符進行判斷,循環直到1爲止
{
a=a%2?(a*3+1):(a/2);
n++;
}
return n;
}
int main()
{
int a,b,i,Max,number,c;
while(cin>>a>>b&&(a+b))
{
Max=0;
if(a>b)
{
c=a;
a=b;
b=c;
}
if(!a)
a++;
cout<<"Between "<<a<<" and "<<b<<", ";
for(i=a; i<=b; i++)
if(A(i)>Max)
{
Max=A(i);
number=i;
}
cout<<number<<" generates the longest sequence of "<<Max<<" values."<<endl;
}
return 0;
}
UVA 371 - Ackermann Functions
同uva100,也是經典的3n+1問題,注意本題數字1運行3次,博主因爲這個5次WA,很難受
代碼如下:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.