#작성 코드
#include <cstdio>
int n;
long long int memo[91];
long long int fibo(int i){
if( i==0 ) return 0;
if( i==1 ) return 1;
if( memo[i]!=0 ) return memo[i];
return memo[i] = fibo(i-1)+fibo(i-2);
}
int main(){
scanf("%d", &n);
printf("%lld", fibo(n));
// 최대 90번째 피보나치수 출력할수있으므로
// 아주 큰 수 출력에 대비해야한다!
return 0;
}
##
최대 90번째 피보나치수를 출력해야하므로 출력값은 아주 큰 수가 된다. 따라서 계산한 값을 저장할 memo배열의 자료형과, 피보나치 수를 계산하는 함수의 리턴 자료형을 long long int로 해야했다.
'BOJ' 카테고리의 다른 글
BOJ 14889번 :: 스타트와 링크 (0) | 2019.11.29 |
---|---|
BOJ 1003번 :: 피보나치 함수 (0) | 2019.11.28 |
BOJ 14888번 :: 연산자 끼워넣기 (0) | 2019.11.28 |
BOJ 2580번 :: 스도쿠 (0) | 2019.11.27 |
BOJ 9663번 :: N-Queen (0) | 2019.11.26 |