1.母牛的故事
描述:有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第 n 年的時候,共有多少頭母牛?
輸入:輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數 n(0n=0 表示輸入資料的結束,不做處理。
輸出:對於每個測試例項,輸出在第 n年的時候母牛的數量。
每個輸出佔一行。
#include
using
namespace std;
intmain()
cout << fn << endl;}}
return0;
}
思路:
我們先列出乙個**,把每一年對應的母牛數量寫出來。
第 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]
2.斐波那契數列
描述斐波那契數列是這樣一組有規律的數字:1、1、2、3、5、8、13、21、34、…。這組數字的前兩項都是1,從第三項開始,每個數字都是前兩個數字的和。輸出這個數列第n項的值。
輸入乙個正整數n
輸出斐波那契數列第n項的值
樣例輸入
6樣例輸出
8
#include
using
namespace std;
intmain()
cout << c;
}return0;
}
總結:數列的變化規律是:通過前兩項的和相加,從而得到第三項的值。
因此,每次迴圈需要儲存三個變數:第乙個數,第二個數,以及輸出數本身。
運用迭代的思想,將原本的第二個數,賦值為新的迴圈中的第乙個數(a=b);而輸出數本身,則賦值為新的迴圈中的第二個數(b=c);
母牛的故事(斐波那契變形)
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0這種數列問題從頭開始分析 年數 1 2 3 4 5 6 7 牛數 1 2 3 4 6 9 13 注意...
母牛的故事 遞推(斐波那契數列邊式)
母牛的故事 時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 題目描述 有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入描述 輸入資料由多個...
遞迴與斐波那契數列
迭代實現 def fab n a1 1 a2 1 a3 1if n 1 print 輸入有誤 return 1 while n 2 0 a3 a1 a2 a1 a2 a2 a3 a 1return a3 result fab 20 if result 1 print 總共有 d對小兔子誕生 resu...