遞迴就是一個方法自己呼叫自己。在程式語言中,如果一個程式允許您在同一個函數中呼叫一個函數,那麼它就被稱為函數的遞歸呼叫。
void recursion() { recursion(); /* 函数调用本身 */ } int main() { recursion(); }
C語言支援遞歸,即一個呼叫自身的函數。但是在使用遞歸時,程式設計師需要小心定義函數的退出條件,否則它將進入無限循環。
遞歸函數對於解決許多數學問題非常有用,例如計算一個數的階乘、產生斐波那契級數等。
數的階乘
下面的範例使用遞歸計算一個給定的數的階乘函數
#include <stdio.h> unsigned long long int factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 12; printf("Factorial of %d is %d\n", i, factorial(i)); return 0; }
輸出:
Factorial of 12 is 479001600
斐波那契系列
以下範例使用遞迴函數為給定數字產生斐波那契(Fibonacci)系列
#include <stdio.h>int fibonacci(int i) { if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonacci(i-1) + fibonacci(i-2);}int main() { int i; for (i = 0; i < 10; i++) { printf("%d\t\n", fibonacci(i)); } return 0;}
#輸出:
0 1 1 2 3 5 8 13 21 34
相關C語言影片教學推薦:《C教學》
本篇文章就是關於c語言遞迴演算法的介紹,希望對需要的朋友有所幫助!
以上是c語言遞歸演算法怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!