반응형
문제
풀이
아래에 첨부한 2747번 문제와 같은 방식으로 풀이했다.
두 문제의 차이점은 n의 범위이다.
2747번 문제는 n의 최댓값이 45이지만, 이 문제는 90이기 때문에 DP를 int 형으로 선언하면 오류가 발생한다.
n = 90일 때, 피보나치 수는 288,0067,1943,7081,6120이기 때문에, DP를 long long 형으로 선언했다.
int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이며,
long long의 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807이다.
[백준] 2747번 : 피보나치 수 - (C++)
문제 풀이 다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다. n이 조건의 최댓값인 45인 경우, 피보나치 수는 11,3490,3170이다. int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이므로, 피보나치 수의 최댓
jigoo-log.tistory.com
코드
#include <iostream>
using namespace std;
int main() {
int n;
long long DP[90];
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;
}
결과
2748번: 피보나치 수 2
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
반응형
'Programming > C++ - 백준' 카테고리의 다른 글
[백준] 27866번 : 문자와 문자열 (C++) (0) | 2024.02.20 |
---|---|
[백준] 2839번 : 설탕 배달- Greedy Algorithm (C++) (3) | 2023.05.25 |
[백준] 2747번 : 피보나치 수 - (C++) (1) | 2023.05.24 |
[백준] 2775번 : 부녀회장이 될테야 - (C++) (2) | 2023.05.24 |
[백준] 1546번 : 평균 - (C++) (2) | 2023.05.16 |
댓글