解题思路:
很简单的一道题,跟着题目描述的思路写就可以了。
注意事项:
需要注意的是,输入的i不一定小于j!
参考代码:
#include <stdio.h> int getCycle(long long int n); int main() { int i, j, max; while(scanf("%d%d", &i, &j) != EOF) { max = 0; if(i < j) { for(int i2 = i; i2<=j; i2++) if(getCycle(i2) > max) max = getCycle(i2); } else { for(int i2 = j; i2<=i; i2++) if(getCycle(i2) > max) max = getCycle(i2); } printf("%d %d %d\n", i, j, max); } return 0; } int getCycle(long long int n) { int i=1; while( n != 1) { if(n % 2 == 1)//奇数 n = n * 3 + 1; else n /= 2; i++; } return i; }
0.0分
0 人评分