這篇文章將為大家詳細講解有關c語言遞歸算法如何實現,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
遞歸就是一個方法自己調用自己。在編程語言中,如果一個程序允許您在同一個函數中調用一個函數,那么它就被稱為函數的遞歸調用。
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語言遞歸算法如何實現就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。