본문 바로가기
Programming/C++ - 백준

[백준] 2747번 : 피보나치 수 - (C++)

by 지구코드 2023. 5. 24.
반응형


문제


풀이

다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다.

n이 조건의 최댓값인 45인 경우, 피보나치 수는 11,3490,3170이다.

int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이므로, 피보나치 수의 최댓값이 범위 내에 있기 때문에, DP를 int로 선언했다.


코드

#include <iostream>
using namespace std;

int main() {
	int n;
	int DP[45];

	cin >> n;

	DP[0] = 0;
	DP[1] = 1;

	for (int i = 2; i <= n; i++) {
		DP[i] = DP[i - 1] + DP[i - 2];
	}

	cout << DP[n] << endl;
}

결과

 

 

2747번: 피보나치 수

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

 

반응형

댓글