中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言 之遞歸函數

發布時間:2020-06-20 13:27:51 來源:網絡 閱讀:477 作者:飛寞 欄目:開發技術

今天來總結一下關于遞歸函數的使用方面的問題。

  遞歸函數就是在函數使用的時候自己調用自己,層層調用,來實現你想要的功能。

  有兩個最常用的例子,我們來寫一下。

  (1)計算階乘

#include <stdio.h>

int factorial(int n); // 函數聲明(階乘)


int main(void)

{

int a = 5;

printf("%d的階乘是:%d.\n", a, factorial(a));


return 0;

}

int factorial(int n)

{

if (n < 1)

{

printf("error.\n");

return -1;

}

if (n == 1)

{

return 1;

}

else

{

return (n * factorial(n-1));

}

}

  (2)斐波那契函數

#include <stdio.h>

int fibonacci(int n); // 函數聲明(斐波那契函數)

  int fibonacci(int n)  

{  

    if (n == 0) return    0;  

    if (n == 1) return    1;  

  

    return  fibonacci(n - 1) + fibonacci(n - 2);  

}  

int main(void)  

{  

    int a;

    printf("%d的斐波那契函數值為%d",a,fibonacci(a));

    return   0;  

}  

第二個可能不太容易看明白,我們來分析一下

首先,這個假設一個數為n , 

  第一次遞歸,f(n)=f(n-1)+f(n-2)

  第二次遞歸分為兩個部分,

  f(n-1)=f(n-2)+f(n-3) f(n-2)=f(n-3)+f(n-4)

  第三次遞歸分為四個部分……一直遞歸到0和1為止。

  所以n==0或者n==1的時候返回一個常數很重要,要不然就會一直遞歸下去,直到觸發段錯誤。  


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

哈密市| 眉山市| 正定县| 民县| 遵义市| 固安县| 怀安县| 张北县| 泾川县| 宣恩县| 乌兰察布市| 宁武县| 新郑市| 布尔津县| 临桂县| 西贡区| 绩溪县| 洛浦县| 江山市| 江门市| 略阳县| 芮城县| 大冶市| 资阳市| 阿荣旗| 嘉荫县| 通辽市| 武城县| 玉环县| 西峡县| 德清县| 永清县| 左权县| 叙永县| 津市市| 巴彦县| 阿坝| 宁明县| 龙口市| 巩义市| 黔南|