문제 풀기/C#
78. 피보나치
kagan-draca
2025. 2. 25. 15:07
기본 틀 :
public class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
문제를 잘 보면
0 + 1 = 1
1 + 1 = 2
1 + 2 = 3
2 + 3 = 5
0 + 1 = 1
1 + 1 = 2
1 + 2 = 3
2 + 3 = 5
이런 식으로 해당 값이 재사용 되는 것을 볼 수 있다.
그래서, 3개의 변수를 선언하고 +와 %1234567을 반복 수행해준다.
마지막에 %1234567을 하지 않고 + 연산을 수행할 때 하는 이유는
int.MaxValue인 2,147,483,647을 초과하는 숫자가 결과로 나올 수 있기 때문이다.
using System;
public class Solution {
public int solution(int n)
{
int zero = 0, one = 1, sum = 1;
for(int i = 2; i <= n; i++)
{
sum = (one + zero) % 1234567;
zero = one;
one = sum;
}
return sum;
}
}