------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
int main()
{
int n;
long long dp[91] = { 0,1 }; // <-- 자료형 만 변경
scanf("%d",&n);
for (int i = 2; i <= n; i++)
dp[i] = dp[i - 2] + dp[i - 1]; // <-- 1번 문제와 엔진 동일
printf("%lld",dp[n]); // <-- long long이므로 lld를 써줌
return 0;
}
피보나치 수열 1번문제랑 다른점은 입력 n의 범위가 90까지 늘어난것..
int로는 표현할수 있는 수를 넘어가기 때문에 어마무시하게 긴 long long을 썼다.
'알고리즘 > DP(Dynamic Programming)' 카테고리의 다른 글
연속합 (DP) (2) | 2016.12.22 |
---|---|
파도반 수열 (DP) (0) | 2016.12.21 |
1로 만들기 (DP) (0) | 2016.12.21 |
피보나치 수열 1 (DP) (0) | 2016.12.21 |