C1034 - 3n + 1问题
题目描述
考虑如下的序列生成算法:从整数n开始,如果是偶数,把它除以2;如果n是奇数,把它乘3加1。用新得到的值重复上述步骤,直到n=1时停止。
例如,n = 22时该算法生成的序列是:
22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
人们猜想(没有得到证明)对于任意整数n,该算法总能终止于n = 1。这个猜想对于至少1000000内的整数都是正确的。
对于给定的n,该序列的元素(包括1)个数被称为n的循环节长度。在上述例子中,22的循环节长度为16。
输入两个数i和j,你的任务是计算i和j(包含i和j)之间的整数中,循环节长度的最大值。
输入格式
第1行,两个正整数i和j,用空格分隔
输出格式
输出包括一行,先按原来输入的顺序输出i和j,然后输出两者之间的整数中的最大循环节长度,这三个整数用空格分隔
输入输出样例
| 输入样例 | 输出样例 |
|---|---|
| 1 10 | 1 10 20 |
| 100 200 | 100 200 125 |
| 210 201 | 210 201 89 |
数据范围与提示
100%的数据:$0 < i, j < 100000$
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式
1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1034.in,输出文件名为:C1034.out