본문 바로가기
Program/C

16. C언어 재귀함수

by Murciellago 2021. 11. 28.
반응형
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

댓글