#include
using
namespace std;
intmain()
cout<}return0;
}
前些天接觸到一道與fibonacci數列相似的題,放在這裡做一下歸類:
題目:給定數列 1, 1, 1, 3, 5, 9, 17, …,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。
#include
using
namespace std;
intmain()
cout<}return0;
}
分析:在對於fibonacci數列這類題型時應拒絕用陣列來解決,因為當數大到一定程度時陣列的容量會超出記憶體。
補充習題:
#include
using
namespace std;
intfib
(int n)
intmain()
#include
using
namespace std;
intmain()
cout<}return0;
}
#include
using
namespace std;
intmain()
}return0;
}
#include
using
namespace std;
intfib
(int n)
intmain()
return0;
}
總結:fibonacci數列問題一般情況我們有兩種處理方式:遞迴及非遞迴。
遞迴方法設計簡單,**短,但缺陷也很明顯,它的效率太慢,演算法複雜度太高。
非遞迴方法設計稍複雜些,但效率較高,時間複雜度較短。
另外最好不要用陣列來解決數列問題,當資料太大時,記憶體不一定夠用。
藍橋杯 Fibonacci數列
問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示f n除以10007的餘數。說明 在本題中,答案是要求fn除以1...
藍橋杯 Fibonacci數列
題目描述 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案是要求f...
藍橋杯 入門 Fibonacci數列
問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案是要求fn除以10...