algorithm/Dynamic Programming
[C++] BOJ 10870 피보나치 수 5
gartenhh
2021. 5. 1. 12:01
문제
백준 10870번
10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
코드
#include<iostream>
using namespace std;
int pibo[21];
int n;
int main() {
pibo[0] = 0;
pibo[1] = 1;
cin >> n;
if (n == 0) cout << pibo[0];
else if (n == 1) cout << pibo[1];
else {
for (int i = 2; i <= n; i++) {
pibo[i] = pibo[i - 1] + pibo[i - 2];
}
cout << pibo[n];
}
}
풀이방법
동적계획법을 이용해 피보나치 수를 배열 pibo에 저장해준다.
고민과정
재귀함수랑 DP 둘다 가능하겠다.