Latest web development tutorials

C rekurencyjne

Rekursji dotyczy definicji sposobu funkcja stosowanych w samej funkcji.

Na przykład:
Był kiedyś góra, góra istniała świątynia, świątynia ma stary mnich, opowiadał historie młodego mnicha to! Co to jest historia? "Był kiedyś góra, góra nie była świątynia, świątynia ma stary mnich, opowiadał historie młodego mnicha to! Co historia to jest?" Był kiedyś góra, góra nie była świątynia, świątynia ma stary mnich, jest historia do młodego mnicha! Co to jest historia? ...... ''

Składnia jest następująca:

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

int main()
{
   recursion();
}

Wsparcie języka C rekurencji, czyli funkcja może nazywać się. Jednak podczas korzystania z rekurencji, programista Należy zauważyć, że definicja funkcji powoduje wyjście z warunków, w przeciwnym razie będzie ona wpada w nieskończoną pętlę.

Funkcji rekurencyjnej w rozwiązaniu wiele problemów matematycznych grać kluczową rolę, takich jak obliczanie silnia liczby, generuje liczbę Fibonacciego, i tak dalej.

Ilość silnia

Poniższy przykład używa funkcji rekurencyjnej, aby obliczyć silnię podanej liczby:

#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;
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

15 的阶乘为 1307674368000.000000

liczb Fibonacciego

Fibonacci Poniższy przykład używa funkcji rekurencyjnej wygenerować określoną liczbę kolumn:

#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;
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

0	1	1	2	3	5	8	13	21	34