遞歸是以自類似的方式重複項目的處理過程。一樣地,在編程語言中,在函數內部調用函數自身,稱爲遞歸調用。以下:程序員
void recursion(){ recursion(); /* 函數調用自身 */}int main(){ recursion();}編程
C 語言支持遞歸,即,一個函數能夠調用自身。但在使用遞歸時,程序員須要注意定義一個從函數退出的條件,不然會進入無限循環。編程語言
遞歸函數在解決許多數學問題上起了相當重要的做用,好比計算一個數的階乘、生成斐波那契數列,等等。函數
數的階乘學習
下面的實例使用遞歸函數計算一個給定的數的階乘:設計
#include <stdio.h>int factorial(unsigned int i){ if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 15; printf("Factorial of %d is %d\n", i, factorial(i)); return 0; }blog
當上面的代碼被編譯和執行時,它會產生下列結果:遞歸
若是你也想成爲程序員,想要快速掌握編程,趕忙關注小編加入學習企鵝圈子吧!遊戲
裏面有資深專業軟件開發工程師,在線解答你的全部疑惑~編程語言入門「so easy」ci
資料包含:編程入門、遊戲編程、課程設計等。
免費學習書籍:
免費學習資料:
Factorial of 15 is 2004310016
斐波那契數列
下面的實例使用遞歸函數生成一個給定的數的斐波那契數列:
#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