Collatz
数学中一个有趣的小事实是:简单的规则也可能带来巨大的结果。例如,Collatz 猜想在问,两个简单的规则是否能把任意整数降到 1。
它通常表述为:
- 对偶数,除以 2
- 对奇数,乘以 3 再加 1
我们来试一试吧!
注意:如果出现代码超时,请仔细检查 if-else 语句的逻辑(或查看提示)。
本练习是课程的一部分
Java 中级
练习说明
- 输入合适的"终止"条件。
- 调用一个方法检查
n是否为偶数。 - 正确处理奇数情形——仅当原始的
n为奇数时才应触发。
交互式实操练习
通过完成这段示例代码来试试这个练习。
class Collatz {
static boolean isEven(int n) {
return n % 2 == 0;
}
public static void main(String[] args) {
int n = 1634;
int i = 0;
System.out.print(n);
// Enter the appropriate termination condition
while (____) {
// Call a method to check if n is even
if (____(n)) {
System.out.println(" is even");
n /= 2;
} // Handle the odd case correctly. All non-even integers are odd
____ {
System.out.println(" is odd");
n = n * 3 + 1;
}
System.out.print(n);
i += 1;
}
System.out.println(" reached in " + i + " steps");
}
}