#작성 코드

#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

+ Recent posts