【练习】克拉兹问题

3n+1问题是一个简单有趣而又没有解决的数学问题。这个问题是由Collatz在1937年提出的。克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thwaites猜想或者Ulam问题。

问题如下:

(1)输入一个正整数n;

(2)如果n=1则结束;

(3)如果n是奇数,则n变为3n+1,否则n变为n/2;

(4)转入第(2)步。

克拉兹问题的特殊之处在于:尽管很容易将这个问题讲清楚,但直到今天仍不能保证这个问题的算法对所有可能的输入都有效——即至今没有人证明对所有的正整数该过程都终止。

例如:n=9时,有 9  28  14  7  22  11  34  17  52  26  13  40  20  10  5  16  8  4  2  1

public class Collatz {
    /**
     * Collatz问题
     * @param number
     */
    public static void CollatzQ(int number){
        String  result = "";
        int tmp = number;
        while(true){
            if(tmp == 1){
                result = result + "Over";
                System.out.println(result);
                break;
            } else if (tmp <= 0){
                System.out.println("The number is error!!!");
                break;
            } else {
                 if (tmp % 2 == 0){
                     tmp = tmp/2;
                 }else {
                     tmp = 3 * tmp + 1;
                 }
                 result = result + tmp + "\t";
            }
        }

    }

    public static void main(String[] args) {
        for(int num = 0; num < 10; num++){
            Collatz.CollatzQ(num);
        }
    }
}
The number is error!!!
Over
1    Over
10    5    16    8    4    2    1    Over
2    1    Over
16    8    4    2    1    Over
3    10    5    16    8    4    2    1    Over
22    11    34    17    52    26    13    40    20    10    5    16    8    4    2    1    Over
4    2    1    Over
28    14    7    22    11    34    17    52    26    13    40    20    10    5    16    8    4    2    1    Over

参考:http://www.xuebuyuan.com/2025609.html

时间: 2024-10-14 13:13:28

【练习】克拉兹问题的相关文章

3038 3n+1问题——http://codevs.cn/problem/3038/

第一部分:题目 题目描述 Description 3n+1问题是一个简单有趣而又没有解决的数学问题.这个问题是由L. Collatz在1937年提出的.克拉兹问题(Collatz problem)也被叫做hailstone问题.3n+1问题.Hasse算法问题.Kakutani算法问题.Thwaites猜想或者Ulam问题. 问题如下: (1)输入一个正整数n: (2)如果n=1则结束: (3)如果n是奇数,则n变为3n+1,否则n变为n/2: (4)转入第(2)步. 克拉兹问题的特殊之处在于:

- &gt; code vs 3038 3n+1问题(递归)

3038 3n+1问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 3n+1问题是一个简单有趣而又没有解决的数学问题.这个问题是由L. Collatz在1937年提出的.克拉兹问题(Collatz problem)也被叫做hailstone问题.3n+1问题.Hasse算法问题.Kakutani算法问题.Thwaites猜想或者Ulam问题. 问题如下: (1)输入一个正整数n: (2)如果n=1则结束: (3)如果

3038 3n+1问题

题目描述 Description 3n+1问题是一个简单有趣而又没有解决的数学问题.这个问题是由L. Collatz在1937年提出的.克拉兹问题(Collatz problem)也被叫做hailstone问题.3n+1问题.Hasse算法问题.Kakutani算法问题.Thwaites猜想或者Ulam问题. 问题如下: (1)输入一个正整数n: (2)如果n=1则结束: (3)如果n是奇数,则n变为3n+1,否则n变为n/2: (4)转入第(2)步. 克拉兹问题的特殊之处在于:尽管很容易将这个

codevs3038 3n+1问题

题目描述 Description 3n+1问题是一个简单有趣而又没有解决的数学问题.这个问题是由L. Collatz在1937年提出的.克拉兹问题(Collatz problem)也被叫做hailstone问题.3n+1问题.Hasse算法问题.Kakutani算法问题.Thwaites猜想或者Ulam问题. 问题如下: (1)输入一个正整数n: (2)如果n=1则结束: (3)如果n是奇数,则n变为3n+1,否则n变为n/2: (4)转入第(2)步. 克拉兹问题的特殊之处在于:尽管很容易将这个

3038 3n+1问题codevs

题目描述 Description 3n+1问题是一个简单有趣而又没有解决的数学问题.这个问题是由L. Collatz在1937年提出的.克拉兹问题(Collatz problem)也被叫做hailstone问题.3n+1问题.Hasse算法问题.Kakutani算法问题.Thwaites猜想或者Ulam问题. 问题如下: (1)输入一个正整数n: (2)如果n=1则结束: (3)如果n是奇数,则n变为3n+1,否则n变为n/2: (4)转入第(2)步. 克拉兹问题的特殊之处在于:尽管很容易将这个