代码如下:import java.util.Scanner;public class Factorial { public static void main(String[] args) {
System.out.println("---开始---");
Scanner input = new Scanner(System.in); int i ; int j; int sum = 1;
System.out.print("请输入要阶乘的数字:");
i = input.nextInt();
j = i; while (i >= 1) {
sum *= i;
i--;
}
System.out.println(j+"的阶乘为:"+sum);
}
}代码测试,输入5,6,7,8 这些都没问题,算出来都是对的但是输入100,99之类的 得出来结论是0是咋回事呢?如图
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
虽然我不学Java
,但很明显99!===9.332622e+155
已经超出int
的取值范围了,这就会导致结果溢出,进而产生无数个占位符零.
参考Why does Java think that the product of all numbers from 10 to 99 is 0?
添加回答
举报
0/150
提交
取消