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에 저장한다음 출력하게 했다