问题是阶乘值在一个 while loop
我想这就是问题所在。这是密码
while (true) {
System.out.print("Enter a positive integer: ");
n = sc.nextInt();
if (n > 0) {
System.out.print(n + "! = ");
for (int i = 1; i <= n; i++) {
factorial = factorial * i;
for (int j = 1; j <= n; j++) {
if (j == n) System.out.printf("%d", j);
else System.out.printf("%d x ", j);
}
System.out.println("");
System.out.println("The factorial of " + n + " is " + factorial);
}
} else {
System.out.println("Invalid input");
break;
}
}
好的,当第一个输入是5时,问题就出现了 The factorial of 5 is: 120
但是在第二次输入时,当我尝试输入例如4时,它是这样的 The factorial of 4 is: 2880
即使4的阶乘是24,它也会更高
1条答案
按热度按时间vnzz0bqm1#
只需添加
factorial = 1;
在else块之后。