C 遞迴
遞歸指的是函數的定義中使用函數本身的方法。
遞歸函數在解決許多數學問題上起了至關重要的作用,例如計算一個數的階乘、產生斐波那契數列,等等。舉個例子:
從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事呢!故事是什麼呢? 「從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事呢!故事是什麼呢?'從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事呢! 故事是什麼呢?但在使用遞歸時,程式設計師需要注意定義一個從函數退出的條件,否則會進入死循環。
數的階乘
下面的實例使用遞歸函數計算一個給定的數的階乘:
void recursion(){ recursion(); /* 函数调用自身 */}int main(){ recursion();}
#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#當上面的程式碼被編譯和執行時,它會產生下列結果: