n 번째 결과가 너무 커서 모든 값을 저장할 수 없어져 오차가 생기는 것입니다.
모듈러 연산(%)은 합성 법칙이 성립하므로 마지막에 나머지 연산으로 처리한 결과와 매 번 나머지 연산한 결과가 같습니다.
값이 너무 커지지 않도록 매 번 나머지 연산을 하면 오차가 발생하지 않을 것입니다.
합성 법칙
// k =1234567
(a + b) % k == a % k + b % k
fib(n) % k == (fib(n - 1) + fib(n - 2)) % k
(fib(n - 1) + fib(n - 2)) % k == fib(n - 1) % k + fib(n - 2) % k
답변 감사드립니다~