티스토리 뷰

반응형

안녕하세요 오늘은 C언어로 재귀함수를 구현해보겠습니다.


저번에 설치한 Dev C++ 컴파일러를 사용하였습니다.


재귀함수란 자기 자신을 호출하는 함수인데요, 팩토리얼(factorial)이라는 함수를 구현하면서 살펴보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int factorial(int n){
    if(n==0)
        return 1;
    else
        return n*factorial(n-1);
}
int main(){
    int n;
    printf("수를 입력하세요: "); 
    scanf("%d",&n);
    printf("%d",factorial(n));
    
    return 0;    
}
 
cs

전체 소스코드입니다.


factorial이라는 새로운 함수를 main함수 위에 정의해주었구요,


값을 알고싶은 변수 n이 1이면 1을 ,1보다 크면 다시 n*factorial(n-1)을 return하여


1만큼 계속 낮아진값을 반환하다가 1을 반환할 때까지 반복적으로 factorial를 호출합니다.


결과적으로 return된 값이 n! 임을 알 수 있습니다. 



위 처럼 5를 입력하면 5! = 120 이 출력됩니다.


간단하죠?





반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday