반응형
SMALL
이 장에서는 C언어 프로그래밍에서 재귀 함수에 대해 설명한다.
자신을 호출하는 함수를 재귀함수라고 한다.
재귀 함수는 어떻게 작동하는가?
1
2
3
4
5
6
7
8
9
10
11
12
13
|
void recurse()
{
recurse();
}
int main()
{
recurse();
}
|
재귀 함수는 어떤 조건이 충족될 때까지 계속된다.
무한 재귀를 방지하기 위해 if...... else 문(또는 유사한 접근방식)은 한 분기가 재귀 호출을 하고 다른 분기는 하지 않는 곳에서 사용할 수 있다.
예) 재귀를 사용한 자연수의 합
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <stdio.h>
int sum(int n);
int main() {
int number, result;
printf("Enter a positive integer: ");
scanf("%d", &number);
result = sum(number);
printf("sum = %d", result);
return 0;
}
int sum(int n) {
if (n != 0)
// sum() function calls itself
return n + sum(n-1);
else
return n;
}
|
output)
Enter a positive integer : 3
sum = 6
처음에 sum()을 사용하여 main() 함수에서 호출되어 number 인수로 전달된다.
int sum() 함수에 n 부분에 3을 대입 다음 함수가 마지막이 0이 되는 순간 마무리되어 3~1까지 더한 수가 출력된다.
반응형
LIST
'Program > C' 카테고리의 다른 글
18. C언어 함수 예 (0) | 2021.11.28 |
---|---|
17. C언어 지역변수의 범위 (0) | 2021.11.28 |
15. C언어 프로그래밍의 사용자 정의 함수 유형 (0) | 2021.11.28 |
14. C언어 사용자 정의 함수 (0) | 2021.11.28 |
13. C언어 전처리기와 매크로 (0) | 2021.11.17 |
댓글