【发布时间】:2011-07-16 02:54:01
【问题描述】:
当这样做时:
int x = 100;
int result = 1;
for (int i = 1; i < (x + 1); i++) {
result = (result * i);
}
System.out.println(result);
这显然是因为结果对于整数来说太大了,但我习惯于为溢出得到大的负数,而不是 0。
提前致谢!
当我切换到这个时:
int x = 100;
int result = 1;
for (int i = 1; i < (x + 1); i++) {
result = (result * i);
System.out.println(result);
}
我收到this。
【问题讨论】:
-
这不是计算阶乘的最佳方法。你知道的,对吧?
-
即使你不会得到 0,你的循环也不会计算阶乘。
-
@duffymo:是的,我只是对输出感到好奇。谢谢!
-
@Roflcoptr:我认为确实如此,我刚刚测试了 9 次,结果正确。
-
@duffymo 当然!毕竟,如果我想要
5!,我不会做5*4*3*2*1。我要评估gamma(6)!
标签: java overflow int factorial