ghgh1028   2년 전

답은 맞게 나오는 것 같습니다 어느 부분이 잘못된건가요

wizardrabbit   2년 전

안녕하세요? 반례 드립니다:

입력:
90

정답:
2880067194370816120

출력:
-1581614984

피보나치 수의 90번째 수의 값은 무려 2,880,067,194,370,816,120나 됩니다. int 자료형이 저장할 수 있는 가장 큰 수인 2,147,483,647에 비하면 너무 큰 수입니다. 그렇기 때문에 작성하신 코드에서는 오버플로우, 즉 저장할 수 있는 수의 범위를 초과해 의도했던 것과 다른 수가 저장됩니다.

이를 해결하기 위해서는 더 큰 수를 저장할 수 있는 long long 자료형을 사용하시면 되겠습니다. 출력 시에도 %d를 사용하면 int 자료형의 형태로 출력되어 오버플로우가 또 발생할 수 있으므로, long long 자료형을 출력할 수 있는 %lld 사용을 추천드립니다.

문제가 해결되기를 바랍니다!

ghgh1028   2년 전

해결했습니다 감사합니다!

댓글을 작성하려면 로그인해야 합니다.