C언어/주차별 문제
[4주차] 피보나치 (재귀함수)
슈슈버거
2023. 4. 19. 22:43
문제
내가 작성한 코드
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int fibonacci(int i){
if(i == 0){
return 0;
}
else if(i==1){
return 1;
}
return fibonacci(i-1) + fibonacci(i-2);
}
int main() {
int result;
int num;
scanf("%d",&num);
result = fibonacci(num);
printf("%d\n", result);
return 0;
}
피보나치를 재귀를 이용해 푸는 문제였다
0 또는 1이 입력될 경우 결과값은 재귀로 구할 수 없기에 내가 따로 정해주었다
2부터는 전과 전전 2개의 값을 불러올 수 있으므로 재귀로 불러주었다.
n이 차례대로 줄며 결국에는 0과 1에 도착하게 하여 return을 또 차례로 해주도록 했다
return 값을 함수의 끝에 돌려주고
main에서 그 값을 result에 저장한다음 출력하게 했다