본문 바로가기
알고리즘/백준

C++ 백준 BOJ 10870 피보나치 수 5

by parkkingcar 2022. 7. 27.

 

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하는 문제입니다.

 

 

 

 

10870번: 피보나치 수 5

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

www.acmicpc.net

#include<iostream>
using namespace std;


int fibo(int num) {
	int result = num;
	if (result == 0) {
		return 0;
	}
	else if (result == 1) {
		return 1;
	}
	else {
		return fibo(result - 1) + fibo(result - 2);
	}
}

int main() {
	int a;
	cin >> a;
	cout << fibo(a);
	return 0;
}

 

재귀함수로 간단하게 풀 수 있는 문제입니다.

 

 

 

이 피보나치 수를 구할 때 동적 계획법(다이나믹 프로그래밍)을 이용하면 더 효율적으로 문제를 해결할 수 있습니다.

 

아래 제 블로그 글은 다이나믹 프로그래밍에 대한 내용입니다.

 

 

[기초] 다이나믹 프로그래밍(Dynamic Programming, DP)

다이나믹 프로그래밍 큰 문제를 작은 문제로 나눠서 푸는 알고리즘으로 동적 계획법이라고도 합니다. 동적 계획법 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 아래 두 가지 속성을 만족해야

parkkingcar.tistory.com

 

댓글