알고리즘/문제 풀이

10870번: 피보나치 수 5

Themion 2022. 1. 3. 13:41

https://www.acmicpc.net/problem/10870

 

10870번: 피보나치 수 5

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

www.acmicpc.net

구하고자 하는 피보나치 수의 순서 n을 입력받은 뒤 n번째 피보나치 수를 계산해 출력한다.

#include <cstdio>

#define MAX_N 20

int main() {
    // fib[i % 2]: i번째 피보나치 수, n: 구할 피보나치 수의 순서
    int fib[2] = { 0, 1 }, n;

    // n을 입력받은 뒤 n번째 피보나치 수까지 계산
    scanf("%d", &n);
    for (int i = 2; i <= n; i++) fib[i % 2] += fib[!(i % 2)];
    // n번째 피보나치 수를 출력
    printf("%d\n", fib[n % 2]);

    return 0;
}