2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. n은 2 이상 100,000 이하인 자연수입니다.
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
vector<int> fibonacci(n, 0);
if (n > 2)
{
fibonacci[0] = 0;
fibonacci[1] = 1;
for (int i = 2; i <= n; ++i)
{
fibonacci[i] = fibonacci[i - 2] + fibonacci[i - 1];
}
answer = fibonacci[n] % 1234567;
}
else
{
answer = n;
}
return answer;
}
(a + b) % m = ((a % m) + (b % m)) % m
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
int m = 1234567;
vector<int> fibonacci(n + 1, 0);
if (n > 2)
{
fibonacci[0] = 0;
fibonacci[1] = 1;
for (int i = 2; i <= n; ++i)
{
fibonacci[i] = (fibonacci[i - 2] + fibonacci[i - 1]) % m;
}
answer = fibonacci[n];
}
else
{
answer = n;
}
return answer;
}