C
[C] 재귀함수를 이용한 피보나치 수열 출력
아몬드맛빼빼로
2024. 4. 18. 11:39
반응형
예시들
#include "stdio.h"
int fibo(int N) {
if (N > 1)
return fibo(N - 1) + fibo(N - 2);
else if (N == 0)
return 0;
else if (N == 1)
return 1;
}
int main(void) {
int n, result;
scanf("%d", &n);
result = fibo(n);
printf("%d", result);
}
#include "stdio.h"
int fibo(int n) {
if(n <= 1)
return n;
return fibo(n - 1) + fibo(n - 2);
}
int main(void) {
int num;
scanf("%d", &num);
printf("%d", fibo(num));
return 0;
}
코드해석
위 코드블록의 기본적인 구조는 변수 'n'이 1이나 0이 될때까지 함수(인수-1)+함수(인수-2)의 구조로 자기 자신을 호출하는 것이다
매개변수로 5가 입력된다면 fibo(5-1)+fibo(5-2)이기 때문에 4와 3이 다시 한번 fibo함수로 내려가고
if문에 의해 n이 1 이하가 된것을 검사하면 return 1이나 return 0를 하여 다시 위로 돌아온다.
최종적으론 피보나치 수열에서 5번째에 해당하는 값인 '5'가 출력된다.