"재귀 함수"는 함수 본문에서 자신을 다시 호출하는 것입니다.
예를 들어,
-
1부터 N까지의 모든 정수의 곱인 정수 'N'의 계승을 계산하는 함수 팩트( ).
-
1(또는) 0의 인수와 함께 함수는 1을 반환합니다. 그렇지 않으면 n*fact(n-1)을 반환합니다. 이는 'n'이 1이 될 때까지 발생합니다.
Fact (5) =5* fact (4) =5*4*3* fact (3) =5*4*3*2* fact (2) =5*4*3*2*1 fact (1) =5*4*3*2*1 = 120.
예시
다음은 숫자를 뒤집기 위해 재귀 함수를 사용하는 C 프로그램입니다 -
#include<stdio.h> main ( ){ int n,f; int fact (int); clrscr ( ); printf ("enter a number"); scanf ("%d", &n); f= fact (n); printf (factorial value = %d",f); } int fact (int n){ int f; if ( ( n==1) || (n==0)) return 1; else f= n*fact (n-1); return f; }
출력
출력은 다음과 같습니다 -
Enter a number 5 Factorial value = 120
다음은 재귀 함수를 사용하여 주어진 숫자를 뒤집는 또 다른 C 프로그램입니다 -
#include<stdio.h> int sum=0,rem; int main(){ int num,revNum; printf("enter number:\n"); scanf("%d",&num); revNum=revNumFunction(num);//calling function to reverse the given number printf("the number after reverse :%d",revNum); return 0; } revNumFunction(int num){ if(num){ rem=num%10; sum=sum*10+rem; revNum(num/10); } else return sum; }
출력
출력은 다음과 같습니다 -
enter number: 1357 the number after reverse is :7531