課程主頁在
,課程資源在
雲學堂「賀老師課堂」
同步展示,使用的帳號請到課程主頁中檢視。
description
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?
input
輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n(0< n< 55),n的含義如題目中描述。
n=0表示輸入資料的結束,不做處理。
output
對於每個測試例項,輸出在第n年的時候母牛的數量。
每個輸出佔一行。
sample input24
50sample output24
6分析根據題意,先列出前幾年的牛頭數,試著找找規律:
第n年:
n=1n=2
n=3n=4
n=5n=6
n=7n=8
n=9fn頭牛?
f1=1
f2=2
f3=3
f4=4
f5=6
f6=9
f7=13
f8=19
f9=28
我們可以得出這樣乙個公式:fn=fn-1+fn-3
再理解一下,fn-1是前一年的牛,第n年仍然在,fn-3是前三年那一年的牛,但換句話說也就是第n年具有生育能力的牛,也就是第n年能生下的小牛數。
程式設計序,求解這個公式就行了。
當然,第1-3年的數目,需要直接給出。
很像斐波那契數列,有不一樣之處,道理、方法一樣。其實,在程式設計之前,講究先用這樣的方式建模。
下面給出參考程式:
[cpp]view plain
copy
//解法1:迭代解法
#include
using
namespace
std;
intmain()
cout<}
} return
0;
}[cpp]view plain
copy
//解法2:定義遞迴函式(效率低,不建議用)
#include
using
namespace
std;
intf(
intn);
intmain()
return
0;
} int
f(int
n)
[cpp]view plain
copy
//解法3:用陣列
#include
using
namespace
std;
intmain()
; for
(i=4;i<=55;i++)
f[i]=f[i-1]+f[i-3];
while
(cin>>n&&n!=0)
return
0;
}
母牛的故事
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0 對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。245 0 246 include...
母牛的故事
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。245 0 2 46 lcy inc...
母牛的故事
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。245 02 46lcy c語言程式...