題目
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛?
思路
分析的方法:建立遞推關係
定義:Total(n) = Total(n-1) + Able(n)
即今年的種羣總數等於去年總數加上今年新生育的數目,那麼知道Able(n)
就可以解出此題。
注意題目中說每頭牛都是第4年生育,假設今年就是第4年,那麼今年新生育的數目Able(n)
其實都是4年前那幫牛生的,也就說4年前的那幫牛有多少,今年就會新增多少新牛,所以其實Able(n) = Total(n-3)
,
於是遞推關係就出來了:Total(n) = Total(n-1) + Total(n-3)
注意前3年不能由上述公式遞歸得到,所以就直接列出前3年的數目就行。
經驗的方法:列舉並歸納
把第1年到第8年的種羣數目列舉出來,然後可以發現下列遞推式成立:
Total(n) = Total(n-1) + Total(n-3)
,
然後聯想到熟悉的斐波那契數列,於是駕輕就熟。