ACM初学者The3n+1problemPOJ1207翻译后大概是这个意思:考虑一个算法来生成以下序列的.从整数n开始.如果n为偶,除以2.如果是奇,乘3加1.对后面的n重复这个步骤,n=1时终止.例如,n=22时,会产生下
ACM初学者The3n+1problem
POJ1207
翻译后大概是这个意思:考虑一个算法来生成以下序列的.从整数n开始.如果n为偶,除以2.如果是奇,乘3加1.对后面的n重复这个步骤,n=1时终止.例如,n=22时,会产生下列顺序编号.
221134175226134020105168421
据猜想(但尚未证实),对任意整数n,该算法将终止在n=1处.还有,此猜想对于1,000,000内的整数都成立.
对于一个输入n,n的周期长度是指产生包括(1)在内的数字个数.在上面的例子中,22的周期长度为16.给定任何两个数字i和j,需要你确定出对于i和j之间数字的最大周期长度,包括i和j两端点.
输入:
输入将是一系列的整数对i和j,每行一个整数对.所有的整数将小于10000,且>0.
输出:
为每一对输入整数对i和j,输出的i和j应是同样的顺序,最后是的最大周期长度.这三个数字由一个空格隔开,每三个数字一行,对应一种输入和输出.
SampleInput
110
100200
201210
9001000
SampleOutput
11020
100200125
20121089
9001000174
我是这么写的:
#include
usingnamespacestd;
intmain()
{
inti,j,t,n,p,l;
while(cin>>i>>j)
l=1;//周期最小是1
{
if(i>j){t=i;i=j;j=t;}
for(i>0;i