본문 바로가기

알고리즘 문제풀이/추천 문제

[ 백준 10870 ] 피보나치 수 5 (C++)

반응형
 

10870번: 피보나치 수 5

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

www.acmicpc.net

 

재귀 버전으로 간단하게 풀었다. for문으로도 풀어봤다(주석 참고).

 
#include <iostream>
using namespace std;

int fib(int x){
    if(x == 0)
        return 0;
    if(x == 1 || x == 2)
        return 1;
    return fib(x - 1) + fib(x - 2);
}

int main(){
    int n;
    cin >> n;
    cout << fib(n) << endl;
    
    /* for 버전
    int prepre = 1;
    int pre = 1;
    int f;
    for(int i = 0; i <= n; i++){
        if(i == 0)
            f = 0;
        else if(i == 1 || i == 2)
            f = 1;
        else{
            f = prepre + pre;
            prepre = pre;
            pre = f;
        }
    }
    
    cout << f << endl;
    */
    
    return 0;
}
반응형