재귀 기초
Coddy C 여정의 기초 섹션에 포함된 레슨. 63개 중 50번째.
재귀는 문제를 해결하기 위해 함수가 자기 자신을 호출하는 기법입니다. 큰 문제를 더 작고 유사한 문제로 나누어 해결하는 것과 같습니다.
factorial을 계산하는 간단한 재귀 함수를 살펴보겠습니다:
int factorial(int n) {
// 기본 경우: 0 또는 1의 팩토리얼은 1입니다
if (n <= 1) {
return 1;
}
// 재귀 경우: n! = n * (n-1)!
return n * factorial(n - 1);
}모든 재귀 함수에는 다음이 필요합니다:
- 재귀를 중지할 Base case
- Base case를 향해 진행하는 Recursive case
예를 들어, factorial(3)을 계산하면 다음과 같습니다:
- factorial(3)은 factorial(2)를 호출합니다
- factorial(2)는 factorial(1)을 호출합니다
- factorial(1)은 1을 반환합니다(기저 사례)
- factorial(2)는 2 * 1 = 2를 반환합니다
- factorial(3)는 3 * 2 = 6을 반환합니다
챌린지
쉬움재귀를 사용하여 1부터 n까지의 수의 합을 계산하는 sumToN이라는 함수를 작성하세요.
예:
- sumToN(3)은 6(1 + 2 + 3)을 반환해야 합니다
- sumToN(5)은 15(1 + 2 + 3 + 4 + 5)를 반환해야 합니다
함수는 다음을 수행해야 합니다:
- n이 1일 때 기본 사례를 사용하세요(1을 반환)
- 그렇지 않으면 n에 1부터 (n-1)까지의 수의 합을 더한 값을 반환하세요
직접 해보기
#include <stdio.h>
// 여기에 sumToN 함수를 작성하세요
// main() 함수를 변경하지 마세요
int main() {
int n;
scanf("%d", &n);
printf("%d", sumToN(n));
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C 컴파일러