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

为什么我的阶乘输出得到负数?

为什么我的阶乘输出得到负数?

慕码人2483693 2023-09-27 10:38:22
我编写了计算用户输入数字的阶乘的代码,但任何超过 12 的数字!我得到了错误的号码并且超过了 16!我得到负数。这是什么原因?有解决方案吗?import java.util.Scanner;class Factorial {    public static void main(String[] args) {        Scanner keyboard = new Scanner(System.in);        Integer input = keyboard.nextInt();         int fact = 1;        for (int i = 1; i <= input; i++) {            fact = fact * i;        }        System.out.println(fact);         keyboard.close();     }}
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

4 字节 int 限制为 2147483647。阶乘 13 为 6227020800。阶乘 13 值溢出 int 范围。尝试针对您的情况使用 long 。



查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

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