Small Step

[C++] 백준 10870번 - 피보나치 수 5 본문

알고리즘/백준

[C++] 백준 10870번 - 피보나치 수 5

Esunn 2022. 7. 24. 14:13

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

 

피보나치 수열 문제이다.

0과 1로 시작하여 그다음수는 그 합이 되는 게 피보나치 수열이다.

 

0  1  1  2  3  5  8  13  21  34  55  89  144  233  377  610...

 

이런 식으로 진행된다.

 

fib(n) = fib(n-1) + fib(n-2) 

 

이런 식으로 구할 수 있고 재귀 함수를 통해 구현했다.

 

#include <iostream>
using namespace std;

int Fib(int i) {
	if (i <= 1) return i;
	else return Fib(i - 2) + Fib(i - 1);
}

int main() {
	int n;
	cin >> n;
	cout << Fib(n);
}

n이 0이나 1일 때는 예외처리를 해주고 재귀 함수를 이용해 구현해준다.

 

 


 

사실 이 문제를 재귀로 풀 줄 몰라서 단순하게 반복문으로 구현을 했는데

풀이를 보니 재귀 함수로 푸는 게 코드가 훨씬 간결해졌다.

'알고리즘 > 백준' 카테고리의 다른 글

[C++] 백준 1157번 - 단어 공부  (0) 2022.07.25
[C++] 백준 1152번 - 단어의 개수  (0) 2022.07.25
[C++] 백준 2675번 - 문자열 반복  (0) 2022.07.24
백준 2839번 C,C++  (0) 2020.08.19
백준 1712번 C,C++  (0) 2020.08.18
Comments