java在执行Collatz contejure时无法打印1
当我想对Collatz contejure进行编程时,无法打印1。请帮忙,谢谢
问题是:给定自然数n。生成一个整数序列,如Collatz猜想所述:
这是我的代码(不是代码片段,因为它不清楚(底部是示例输入和输出):
import java.util.Scanner;
class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
while (n > 1) {
System.out.println(n);
if (n % 2 == 0) {
n = n / 2;
} else {
n = (3 * n) + 1;
}
}
}
}
样本输入:17
产出:17522613402005168842
还需要打印1
# 1 楼答案
只需在循环结束时打印1
# 2 楼答案
演示
Collatz Conjecture
时,通常在计算后打印,因此将print语句移动到循环的末尾。如果要显示用于启动流程的输入值,请首先在循环外部打印该值