您的位置:首页 > 其它

uva 100 The 3n+1 problem

2013-06-13 17:35 375 查看
题目链接: http://www.programming-challenges.com/pg.php?page=studenthome /*
The 3n+1 problem
计算每个数的循环节长度,求给定区间的循环节长度的最大值。
*/
#include<iostream>
#include<stdio.h>
using namespace std;
int jk(int n)
{
int num=1;
while(n!=1)
{
if(n&1)
n+=(n<<1)+1;
else
n=n>>1;
num++;
}
return num;
}
int main()
{
int x,y,i;
// freopen("./pcio/110101.inp","r",stdin);
while(scanf("%d %d",&x,&y)!=EOF)
{
int xx=x,yy=y;
if(x>y)
swap(x,y);
int max=0;
for(i=x; i<=y; i++)
{
if(jk(i)>max)
max=jk(i);
}
printf("%d %d %d\n",xx,yy,max);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: