본문 바로가기

개발 관련 기타/알고리즘

[프로그래머스] (C++) 피보나치 수

문제

힌트

  • n이 100000 일 때 피보나치 수를 구해보니 overflow가 발생하였다
  • 구하는 값은 나머지이다.
  • overflow를 방지하려면 나머지 연산을 잘 이용해야 한다.

소스 코드

#include <iostream>
#include <climits>

int solution (int n) {
  int last2, last1, num;
  last2 = 0;
  last1 = 1;
  for (int i = 2; i <= n; i++) {
    num = last1 % 1234567 + last2 % 1234567;
    last2 = last1;
    last1 = num;
  }
  return num % 1234567;
}