1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
void fibonacci(int n, int a, int b)
{
    if (n == 0) return;
    printf("%d ", a);
    fibonacci(n - 1, b, a + b);
}
 
int main()
{
    int a;
    scanf_s("%d", &a);
    fibonacci(a, 1, 1);
 
    return 0;
}
cs

오늘 재귀함수로 피보나치 수열 출력하는거 만들었거든

위에 코드가 내가 짠거임


그런데 교수님이 소개해주는 것도 그렇고 인터넷 찾아보니까

1
2
3
4
5
6
7
int fibo(int n){
    if(n == 0) return 0;
    else 
        if(n == 1) return 1;
    else 
        return fibo(n-1) + fibo(n-2);
}
cs

다 이런식으로 0이나 1 아니면 재귀 함수를 호출하는데 n-1이랑 n-2로 호출해서 더한걸 리턴하는 식으로 짜더라고

혹시 내가 짠거랑 인터넷에 있는거랑 다른게 있음? 출력은 잘되는것 같은데 인터넷에는 아래 방식이 더 많으니 뭔가 아래쪽이 더 빠른가 싶기도 함