为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥9229398 2018-08-05 13:28:43
代码如下: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?


查看完整回答
反对 回复 2018-08-09
  • 1 回答
  • 0 关注
  • 824 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信