[C로 쓴 자료구조론] 1장 연습문제-8번(피보나치 수열) 풀이

두비니

·

2020. 5. 6. 14:34

 

 

9번이 8번함수를 구현하면 해결되서 그냥 같이 씁니다.

 

 

8번 문제


8. 피보나치 수열은 다음과 같이 정의된다.

f(i)를 계산하는 순환 함수와 반복 함수를 모두 C함수로 작성하여라.


 

이것도 전형적인 재귀함수 꼴이죠?

 

재귀함수가 힘든사람은 여기!

https://dokhakdubini.tistory.com/190?category=814319

 

[재귀함수] 재귀함수 구현할 때 염두에 두면 좋은 것들

작년에 c언어를 처음 배울 때도 재귀함수에 대해서 배웠는데 너무 어려워서 그냥 무시한 적이 있었는데 물론 그랬다가 지금 충분히 고통을 받을 수 있었습니다. 그래서 재귀함수와 함께 지지고 볶고 하다가 결국..

dokhakdubini.tistory.com

 

 

함수 안에는 n=0일 때와 n=1일때만 구현하고,

나머지 경우는 수열의 점화식처럼 표현해주면 되겠죠?

 

 

#include <stdio.h>

int fibonacci(int n);

int main() {
	int n;
	/*printf("이 프로그램은 피보나치 수열의 값을 계산하는 함수입니다.\n");
	printf("몇 번째 수열을 알고싶으신가요?: ");
	scanf(" %d", &n);*/

	for (int n = 0; n < 11; n++) {
		printf("f(%d) = %d\n", n, fibonacci(n));
	}
	return 0;
}

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

 

 

쉽죠?