DP - 피보나치 수

1 개요[ | ]

DP - 피보나치 수

2 O(2n)[ | ]

#include <iostream>
using namespace std;
 
int fib(int n) {
    if (n <= 1) {
        return n;
    }
    return fib(n-1) + fib(n-2);
}
 
int main() {
    cout << fib(10);
}

3 O(n)[ | ]

#include <iostream>
using namespace std;
 
int fib(int n) {
    if (n <= 1) {
        return n;
    }
    int a = 0, b = 1, c;
    for (int i = 2; i <= n; i++) {
        c = a + b;
        a = b;
        b = c;
    }
    return b;
}
 
int main() {
    cout << fib(10);
}
#include <iostream>
using namespace std;
 
int fib(int n) {
    int f[n + 2];
    f[0] = 0;
    f[1] = 1;
    for (int i = 2; i <= n; i++) {
        f[i] = f[i - 1] + f[i - 2];
    }
    return f[n];
}
 
int main() {
    cout << fib(10);
}

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}