我编写了计算用户输入数字的阶乘的代码,但任何超过 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 。
添加回答
举报
0/150
提交
取消