goId 2018. 4. 1. 12:51

Backjoon Online Judge 

"2747번 : 피보나치 수" 문제입니다.


문제 링크 : https://www.acmicpc.net/problem/2747


피보나치수는 재귀를 이용해도 구할 수 있지만 연산을 빠르게 하기 위해 배열과 반복문을 이용하였습니다.

(피보나치 수를 구하는 여러가지 방법은 https://www.acmicpc.net/blog/view/28 에 자세히 설명 되어 있습니다.)


 - n <= 45 이므로 int 범위에 속하지만 편의상 long long int로 지정하였습니다. 


코드는 C++로 작성하였습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main() {
    long long int fibo[100= { 01 };
    int n;
    
    cin >> n;
    for (int i = 2; i <= n; i++) {
        fibo[i] = fibo[i - 1+ fibo[i - 2];
    }
    cout << fibo[n] << "\n";
    return 0;
}

cs