// 2748 피보나치수2
// 자료형에 주의 -> 오버플로우
#include <bits/stdc++.h>
using namespace std;
int n;
long long arr[91] = {0, };
long long ans;
long long fib(int n){
if(n<=1){
arr[0] = 0;
arr[1] = 1;
return n;
}
else{
if (arr[n] > 0){ // 답이 존재하면
return arr[n];
}
arr[n] = fib(n-1) + fib(n-2);
return arr[n];
}
}
// n은 90미만 정수
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
fib(n);
ans = arr[n];
cout << ans;
return 0;
}
'코딩캠프 > BOJ' 카테고리의 다른 글
[1717] 집합의 표현 (0) | 2024.02.19 |
---|---|
[2042] 구간 합 구하기 (1) | 2024.02.15 |
[1991] 트리순회 (0) | 2024.02.14 |
[2096] 내려가기 (0) | 2024.02.14 |
[1927] 최소힙 (1) | 2024.02.14 |