我有这个硬件任务要坚持: 我需要写从1到N个给定种子的序列。 例如: 如果用户输入4 v,那么我需要写从第一个序列到第4个序列的每一行,然后记下最后达到1的行数并计数数字。 例如:
Disposables.create
如果用户输入7 c,那么我只需要写一句话:前4个冰雹序列达到1。
到目前为止,我已经为v部分编写了代码, 起作用的部分: 公共课Collatz {
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 + ")");
}
}
不行。请帮我调试一下。
答案 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;