BOJ/재귀

[C언어 / 백준 - 10870번] 피보나치 수 5 (재귀)

JWonK 2021. 5. 22. 12:13
728x90
반응형

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

재귀함수를 통해 피보나치 수를 구현하는 문제이다.

#include <iostream>
#include <algorithm>
#include <deque>
#include <queue>
#include <string>
#include <vector>
using namespace std;

int N;
int fibo[20 + 1];

int Fibo(int x) {
	if (x == N) {
		return fibo[x-1]+fibo[x-2];
	}
	fibo[x] = fibo[x - 1] + fibo[x - 2];
	return Fibo(x + 1);
}

int main() {
	fibo[1] = fibo[2] = 1;
	cin >> N;
	if (N == 0) {
		printf("%d", fibo[0]);
		return 0;
	}
	else if (N == 1 || N == 2) {
		printf("%d", fibo[1]);
		return 0;
	}

	printf("%d",Fibo(3));


	return 0;
}
728x90
반응형