를 들어, 1 N> 17를 반환하지만 내가 17보다 큰 숫자 입력, 나는 항상 나가 1계승 기능은 I 전자를 계산할 수 있도록 내가 계승을위한 자바의 기능을 썼다 겉으로는 아무 이유없이
이 함수이다
public int fact(int n) {
for(int i = n-1; i > 1; i--) {
n *= i;
}
if(n <= 0) {
n = 1;
}
return n;
}
https://en.wikipedia.org/wiki/Integer_overflow – Nayuki
Java에서 int의 최대 값을 확인하십시오. Factorial은 17보다 길다. 그래서 이것이 "음수"가되고 두 번째 if 문이 1 –