【JAVA小白】问关于阶乘计算,算出来等于0的问题

代码如下:

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
是咋回事呢?如图

https://img4.mukewang.com/5b6bcf6000016c5603600186.jpg

慕哥9229398
浏览 867回答 1
1回答

繁花不似锦

虽然我不学Java,但很明显99!===9.332622e+155已经超出int的取值范围了,这就会导致结果溢出,进而产生无数个占位符零.参考Why does Java think that the product of all numbers from 10 to 99 is 0?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java