Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

피보나치수열 Fibonacci Sequence 본문

알고리즘

피보나치수열 Fibonacci Sequence

야식은진리다 2019. 8. 31. 13:39

피보나치 수열은 0 1 1 2 3 5 8 13 21 ... 와 같이 전개되는 수열로서 재귀적인 형태를 띤다.

재귀적인 형태를 띠므로 재귀 함수를 통해 구현할 수 있는데, 코드는 다음과 같다.

#include <stdio.h>

int main(void)
{
	for (int i = 0; i < 20; i++)
	{
		printf("%d ", fibonacci(i + 1));
	}
	return 0;
}

int fibonacci(int value)
{
	if (value == 1) return 0;
	else if (value == 2) return 1;
	else return fibonacci(value - 1) + fibonacci(value - 2);
}

 

피보나치 수열은 1번째는 0, 2번째는 1의 값을 반환하고 3번째 이후부터는 자신 앞의 두 개의 값을 더한 값을 반환한다.

그러므로 finonacci 함수에서 value가 1일 때는 0을 2일 때는 1을 반환하고, 3번째 이후부터는 자기 자신을 호출하는 재귀를 통해서 value - 1번째와 value - 2번째 값을 구해서 더해준다. ( 즉 자신 앞의 두 개의 값을 더한 값 )

'알고리즘' 카테고리의 다른 글

후위 표기법  (0) 2020.08.15
하노이의 탑 The Tower of Hanoi  (0) 2019.12.14
재귀 Recursion / 팩토리얼 Factorial  (0) 2019.08.31
이진탐색 Binary Search  (0) 2019.08.26