iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0
佛心分享-IT 人自學之術

菜雞學習資料結構的 30 日讀書分享系列 第 25 篇

菜雞學習資料結構的 30 日讀書分享【Day 25】

  • 分享至 

  • xImage
  •  

費式數列

假設我們需要列印出前 40 位的費氏數列數。

程式如下:

int main()
{
    int i;
    int a[40];
    a[0] = 0;
    a[1] = 1;
    printf("%d ",a[0]);
    printf("%d ",a[1]);
    for (i = 2; i < 40; i++)
    {
        a[i] = a[i-1] + a[i-2];
        printf("%d ",a[i]);
    }
    return 0;
}

程式很簡單,幾乎不用甚麼解釋。

但如果是用遞迴來實現還可以更簡單。

/* 費氏的遞迴函數 */
int Fbi(int i)
{
    if(i < 2)
        return i == 0 ? 0 : 1;
    return Fbi(i-1) + Fbi(i-2);
}

int main()
{
    int i;
    printf("遞迴顯示費氏數列: \n");
    for (i = 0; i < 40; i++)
        printf("%d ", Fbi(i));
    return 0;
}

換句話說,印出費氏數列除了用迴圈一步步計算,也可以利用自己呼叫自己的遞迴函式來完成,雖然寫起來精簡,但兩者的核心都是靠「前兩項相加」得出結果。

今日的分享就到這囉,我們明天見,掰掰!


上一篇
菜雞學習資料結構的 30 日讀書分享【Day 24】
系列文
菜雞學習資料結構的 30 日讀書分享 共 25 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言