//2_4_2: The 3n+1 problem NP问题 POJ1207 UVA100
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int a,b,i,j,min,max,ans,time;
while(scanf("%d %d",&a,&b) != EOF)
{
if(a > b)
{
max = a;
min = b;
}
else
{
max = b;
min = a;
}
ans = 0;
for(i = min;i <= max;i ++)
{
j = i;
time = 1;
while(j != 1)
{
if(j % 2 == 0) j /= 2;
else j = j * 3 + 1;
time ++;
}
if(time > ans) ans = time;
}
printf("%d %d %d\n",a,b,ans);
}
return 0;
}
/*测试结果:通过POJ1207 UVA100检测
1 2
1 2 2
1 10
1 10 20
100 200
100 200 125
201 210
201 210 89
900 1000
900 1000 174
^Z
请按任意键继续. . .
*/POJ1207 UVA100 The 3n+1 problem
最新推荐文章于 2019-04-01 23:50:00 发布
本文介绍了一个经典的数学问题——3n+1问题,并提供了一段C++代码实现,该程序可以计算任意两个正整数范围内所有数字经过3n+1变换后的最长变换序列长度。
405

被折叠的 条评论
为什么被折叠?



