Collat​​z序列-打印从1到N的每个序列

时间:2018-10-23 11:59:01

标签: java sequence collatz

我有这个硬件任务要坚持: 我需要写从1到N个给定种子的序列。 例如: 如果用户输入4 v,那么我需要写从第一个序列到第4个序列的每一行,然后记下最后达到1的行数并计数数字。 例如:

Disposables.create

如果用户输入7 c,那么我只需要写一句话:前4个冰雹序列达到1。

到目前为止,我已经为v部分编写了代码, 起作用的部分:     公共课Collat​​z {

   1 4 2 1 (4)
   2 1 (2)
   3 10 5 16 8 4 2 1 (8)
   4 2 1 (3)
s.o.p :The first 4 hailstone sequences reached 1.

}

我已经尝试过将for循环从1打印到n,以便像我的示例一样进行打印,但是我的尝试没有这样做:

public static void main(String[] args){
    int n = Integer.parseInt(args[0]);
    String str = String.valueOf(args[1]);
    int counter = 1;
    if (str.equals("v")) {
        while (n != 1) 
    { 
        System.out.print(n + " "); 

        // If n is odd 
        if ((n & 1) == 1) {
            n = 3 * n + 1; 
        }
        // If even 
        else{
            n = n / 2; 
        }
        counter++;

    } 

    // Print 1 at the end 

    System.out.print(n + " (" + counter + ")");

    }
}

不行。请帮我调试一下。

1 个答案:

答案 0 :(得分:0)

解决了它: 添加:在片刻之前

for (i = 1; i <= n; i = i+1){
                hail = i;       // we need to make sure i isn't run over            
                int counter = 1;