Latest web development tutorials

C의 재귀

재귀 함수 자체에 사용 된 함수의 정의 방법을 말한다.

예를 들면 :
산 번 있었다, 사원이 있었던 산, 사원은 젊은 스님 그것에 이야기를하고, 옛 스님이있다! 무슨 이야기인가? 젊은 스님에 대한 이야기를했다 "는 산, 사원이 있었던 산, 성전은 옛 스님이 한 번 있었다 그것! 무슨 이야기입니까? '산 번 있었다, 사원이 있었던 산, 성전, 옛 스님입니다있다 젊은 스님 그것에 이야기! 무슨 이야기? ... ''

다음 구문은 다음과 같습니다

void recursion()
{
   recursion(); /* 函数调用自身 */
}

int main()
{
   recursion();
}

C 언어 지원 재귀이며, 그 함수는 자신을 호출 할 수 있습니다. 재귀를 사용하는 경우에는, 프로그래머는 함수의 정의는 달리 무한 루프에 들어갈 것이다 조건으로 종료 주목해야한다.

많은 수학 문제를 해결 재귀 함수 등 피보나치 수를 생성하고, 같은 숫자의 계승의 계산과 같은 중요한 역할을했다.

번호 계승

다음의 예는 소정 숫자의 계승을 계산하는 재귀 함수를 사용

#include <stdio.h>

double factorial(unsigned int i)
{
   if(i <= 1)
   {
      return 1;
   }
   return i * factorial(i - 1);
}
int  main()
{
    int i = 15;
    printf("%d 的阶乘为 %f\n", i, factorial(i));
    return 0;
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

15 的阶乘为 1307674368000.000000

피보나치 수

다음 예제 열의 소정 수를 생성하기 위해 재귀 함수를 사용 피보나치 :

#include <stdio.h>

int fibonaci(int i)
{
   if(i == 0)
   {
      return 0;
   }
   if(i == 1)
   {
      return 1;
   }
   return fibonaci(i-1) + fibonaci(i-2);
}

int  main()
{
    int i;
    for (i = 0; i < 10; i++)
    {
       printf("%d\t%n", fibonaci(i));
    }
    return 0;
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

0	1	1	2	3	5	8	13	21	34