我们只是为了好玩而尝试创建如下所示的for循环。我们假设我们得到的数字很高,但是我们得到0。为什么是0而不是大数字?
我们甚至尝试了很长时间,因为我们认为它可能比int大。
提前致谢。
private static void calculate() {
int currentSolution = 1;
for (int i = 1; i < 100; i++) {
currentSolution *= i;
}
System.out.println(currentSolution);
}
最佳答案
当您的int
达到-2147483648
时,它会四舍五入为+2147483647
。
令人惊讶的巧合1是将乘以零的乘积引入到您的乘积中。
自己看看:写
if (currentSolution == 0){
// What is the value of i?
}
您需要一个
BigInteger
才能评估100!。1确实不是那么令人惊叹:只是100个!有232作为因数。