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? plplpl ''
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