解题思路:
注意事项:
参考代码:
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
long arr[] = new long[100 * 10000 + 1];
while (input.hasNext()) {
long n = input.nextLong();
long tmp = n;
long res = 0;
for (int i = 1; i <= tmp; i++) {
long max = i;
n = i;
while (n != 1) {
if (n < arr.length) {
if (arr[(int) n] != 0) {
if (arr[(int) n] > max) {
max = arr[(int) n];
}
break;
}
}
if (n % 2 == 0) {
n /= 2;
} else {
n = n * 3 + 1;
}
if (n > max) {
max = n;
}
}
arr[i] = max;
if (max > res) {
res = max;
}
}
System.out.println(res);
}
}}
0.0分
1 人评分
C二级辅导-同因查找 (C++代码)(42的倍数,,所以直接递加42输出)浏览:1092 |
点我有惊喜!你懂得!浏览:1336 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:698 |
C二级辅导-等差数列 (C语言代码)浏览:575 |
校门外的树 (C语言代码)浏览:1113 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:561 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:508 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:467 |
C二级辅导-分段函数 (C语言代码)浏览:593 |