iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
自我挑戰組

環島C一下自己的人生系列 第 3

[Day3]遞迴-某種意義上跟生活差不多?

  • 分享至 

  • xImage
  •  

其實生活上有很多事情都是以遞迴的方式來執行,只是我們都沒有發現,以一個經典案例,我們從小就學過的費式數列

1,1,2,3,5,8,13,...
想了解更多可以參考費氏數列

滿足費式數列的條件下,可以將式子列為下式

f(0)=1,f(1)=1
f(n) = f(n-1)+n

而要使用遞迴時首先要掌握幾個原則

  • 一個Function自己呼叫自己
  • 二個Function互相呼叫
  • 設定停止條件
  • 如何遞迴呼叫(即為你的遞迴公式)

因此將式子以C的方式呈現及為

int f(int n){
    if(n==0 || n==1)    return 1
    else return (f(n-1)+f(n-2))
}

其中假設n=6時會呼叫幾次f?且會回傳多少?而又有多少重複呼叫?

會如以下圖片https://ithelp.ithome.com.tw/upload/images/20220918/201524950rRWewUedk.jpg

而另一個例子為[Day2]Function中的n階層

int fun(int n){
    int fac=1;
    if(n>=0){
        fac = n*fun(n-1);
    }
    return fac;
}

上一篇
[Day2]善用Function來執行一系列小動作
下一篇
[Day4]有限狀態機-Finite-state machine
系列文
環島C一下自己的人生24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言