C 함수 재귀호출 - sonkoni/Koni-Wiki GitHub Wiki

함수에서 재귀호출

#include <stdio.h>

void hello(int count) {
    if (!count) {
        return;
    }
    printf("Hello(%d)\n", count);
    hello(--count);
}

int main(int argc, char *argv[]) {
    hello(5);
    return 0;
}
// Hello(5)
// Hello(4)
// Hello(3)
// Hello(2)
// Hello(1)

재귀호출로 팩토리얼 만들기

팩토리얼(n!)는 1부터 n까지 숫자를 차례로 곱한 값이다.

#include <stdio.h>
// 계산 결과가 바로 더해지는 것이 아니라.
// n 이 1이 되었을 때 스택으로 올라간 함수가 하나씩 소멸하며 최종적으로 합산되는 것이다.
int fatorial(int n) {
    if (n == 1) {
        return 1;
    }
    return n * fatorial(n - 1);
}

int main(int argc, char *argv[]) {
    printf("=> %d\n", fatorial(5));
    return 0;
}
// => 120
⚠️ **GitHub.com Fallback** ⚠️