解题思路:

注意事项:

参考代码:

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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论