문제
내가 작성한 코드
#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에 저장한다음 출력하게 했다
'C언어 > 주차별 문제' 카테고리의 다른 글
[4주차] Counting (0) | 2023.04.19 |
---|---|
[4주차] 원의 둘레와 면적 (0) | 2023.04.19 |
[4주차] BMI 계산기 (0) | 2023.04.19 |
[3주차] 특명: X를 운반하라 (0) | 2023.04.19 |
[3주차] 소수 개수 (0) | 2023.04.19 |