프로그래밍 언어/C언어

C언어 기초이론 (재귀함수)

chobyeonggyu03 2024. 6. 13. 14:11

재귀함수란?

자기 자신을 다시 호출하는 함수

** 재귀 함수의 특징 **

1) 반복문+조건문의 형태로 자주 쓰이고, 특정 조건이 될 때까지 자기자신을 반복하여 호출하다가 원하는 조건에 성립하면 재귀함수호출을 멈추는 로직으로 많이 쓰임

2) 함수를 실행하는 도중 해당함수를 다시 호출할 경우 복사본을 더 만들어서 복사본을 실행하는 원리로 작동함

(아직 완성되지 않은 함수인 자신을 불러들이는 것이 가능한 이유)

3) 탈출조건을 세팅해줘야함 (그렇지 않으면 계속해서 자기자신을 호출하기 때문임)

4) 어려운 자료구조나 알고리즘 문제를 단순화하는데 사용되는 중요한 기술임

(재귀함수는 자료구조와 알고리즘을 공부하기 전에 이해해두면 많은 도움이 된다고 함)

 

/*
제목: 함수 예제 9-7
날짜: 2024.02.27.
내용: 재귀함수와 팩토리얼 예제-팩토리얼
*/

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int Factorial(int n) {
    if (n == 0)
        return 1;
    else
        return n * Factorial(n - 1);
}

int main() {
    printf("1! = %d\n", Factorial(1));
    printf("2! = %d\n", Factorial(2));
    printf("3! = %d\n", Factorial(3));
    printf("5! = %d\n", Factorial(5));
    printf("7! = %d\n", Factorial(7));
    printf("9! = %d\n", Factorial(9));

    return 0;
}