본문 바로가기
Develop/Algorithm

DP

by J-rain 2024. 2. 15.

#include <bits/stdc++.h>

using namespace std;

long long d[100];

long long fibo(int x) {

    cout << "f(" << x << ") ";
    
    if (x == 1 || x == 2) 
    {
        return 1;
    }
    
    if (d[x] != 0) 
    {
        return d[x];
    }
    
    d[x] = fibo(x - 1) + fibo(x - 2);
    return d[x];
}

int main(void) {
    fibo(6);
}

 

 

 

#include <bits/stdc++.h>

using namespace std;

// 앞서 계산된 결과를 저장하기 위한 DP 테이블 초기화
long long d[100];

int main(void) {

    // 첫 번째 피보나치 수와 두 번째 피보나치 수는 1
    d[1] = 1;
    d[2] = 1;
    int n = 50; // 50번째 피보나치 수를 계산

    // 피보나치 함수(Fibonacci Function) 반복문으로 구현(보텀업 다이나믹 프로그래밍)
    for (int i = 3; i <= n; i++) {
    
        d[i] = d[i - 1] + d[i - 2];
    }
    cout << d[n] << '\n';
}

'Develop > Algorithm' 카테고리의 다른 글

이진탐색  (1) 2024.02.13
BFS 너비우선탐색  (0) 2024.02.13
DFS 깊이우선탐색  (0) 2024.02.13

댓글