有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?
輸入輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n(0對於每個測試例項,輸出在第n年的時候母牛的數量。
每個輸出佔一行。
樣例輸入24
50樣例輸出24
6分析:
我們先列出乙個**,把每一年對應的母牛數量寫出來。
第 n年: 1 2 3 4 5 6 7 8
f[n] 頭牛: 1
2 3 4 6 9
13 19
先看第 4 年,對應有 4 頭母牛,4 = 3+1;
再看第 5 年,對應有 6 頭母牛,6 = 4+2;
最後看第 6 年,對應有 9 頭母牛,9 = 6+3;
沒錯,是有規律的,該年母牛的數量就是一年前的數量再加上三年前的數量,
用公式表示就是 f[n] = f[n-1] + f[n-3]
參考**:
迭代法:
先給出用迭代法的**,因為它長
#include"iostream"
using namespace std;
int main()
cout << fn << endl; //fn}}
return 0;
}陣列:
最後給出用陣列的,用陣列相對來說會好一點,因為迭代一次,然後就可以輸出了。上面那個**每輸入乙個數都需要重新迭代,數量大且多的話,花費的時間會比較多。
#include"iostream"
using namespace std;
int main()
; //f[0]=0,f[1]=1,f[2]=2,f[3]=3
for (i = 4; i < 55; i++)
f[i] = f[i - 1] + f[i - 3];
while (cin >> n && n != 0) //輸入 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語言程式...