은근한

C언어 6. 재귀함수 본문

카테고리 없음

C언어 6. 재귀함수

EsJoo 2013. 10. 29. 18:22

재귀함수


재귀함수란


작성한 함수 호출이 자기 자신에서 이뤄지는 일.


중요한건 값을 리턴시켜야하는데 리턴을 하는것은 종료되는 시점이 있어야 하기 때문이다. 그렇지 않으면 계속 자기 자신을


호출하여 실행되기에 먹통이 될수가 있다.



간단한예


ex) 팩토리얼 함수


#include<stdio.h>


int factorial (int);    //함수 정의(이런 이름의 함수를 나중에 쓰겠다라는 것을 의미)


void main()

{

int num;

printf(""팩토리얼을 할 숫자를 입력 : ");

scanf("%d",&num);


printf("%d! = %d\n",num,factorial(num));// 팩토리얼 함수 호출

}

int factorial (int a)    // 인자값인 num의 값을 a 값으로 복사

{

if(a==1)

return 1;

else

a= a*factorial(a-1);        //함수안에 또 함수 호출


return a;

}


만약 처음 num값에 4를 넣었다고 가정하면


4 -> 3 -> 2-> 1이렇게 값이 나오며 그 값을 *로 곱셈을 하기에 팩토리얼 함수가 되는 것이다.