Menu
CoddyTech

재귀 기초

Coddy C 여정의 기초 섹션에 포함된 레슨. 63개 중 50번째.

재귀는 함수가 문제를 해결하기 위해 자기 자신을 호출하는 기법입니다. 큰 문제를 더 작고 비슷한 문제로 나누어 해결하는 것과 같습니다.

팩토리얼을 계산하는 간단한 재귀 함수를 살펴보겠습니다:

int factorial(int n) {
    // 기저 사례: 0 또는 1의 팩토리얼은 1
    if (n <= 1) {
        return 1;
    }
    
    // 재귀 사례: n! = n * (n-1)!
    return n * factorial(n - 1);
}

모든 재귀 함수에는 다음이 필요합니다:

  1. 재귀를 멈추는 기저 사례
  2. 기저 사례에 가까워지는 재귀 사례

예를 들어, factorial(3)을 계산하면 다음과 같습니다:

  • factorial(3)은 factorial(2)를 호출합니다
  • factorial(2)는 factorial(1)을 호출합니다
  • factorial(1)은 1을 반환합니다 (기저 사례)
  • factorial(2)는 2 * 1 = 2를 반환합니다
  • factorial(3)은 3 * 2 = 6을 반환합니다
challenge icon

챌린지

쉬움

1부터 n까지의 숫자의 합을 계산하기 위해 재귀를 사용하는 sumToN이라는 함수를 만드세요.

예를 들어:

  • sumToN(3)은 6을 반환해야 합니다 (1 + 2 + 3)
  • sumToN(5)은 15를 반환해야 합니다 (1 + 2 + 3 + 4 + 5)

함수는 다음과 같이 동작해야 합니다:

  1. n이 1일 때 기본 사례를 사용합니다 (1을 반환)
  2. 그렇지 않으면 n과 1부터 (n-1)까지의 숫자 합을 더한 값을 반환합니다

직접 해보기

#include <stdio.h>

// 여기에 sumToN 함수를 작성하세요

// main() 함수를 변경하지 마세요
int main() {
    int n;
    scanf("%d", &n);
    
    printf("%d", sumToN(n));
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 C 컴파일러