一、題目
【問題描述】
給定數列 1, 1, 1, 3, 5, 9, 17, …,從第 4 項開始,每項都是前 3 項的和。求
第 20190324 項的最後 4 位數字。
【答案提交】
這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果爲一
個 4 位整數(提示:答案的千位不爲 0),在提交答案時只填寫這個整數,填寫
多餘的內容將無法得分。
二、思路
可以分開模,也可以一次性模,一次性的溢出風險較大。
因爲只要最後四位數,那麼加和之後mod 10000 就可以了。
三、題解
#include <iostream> using namespace std; #define MOD 10000 long long num[20190325]; int main() { num[1]=1; num[2]=1; num[3]=1; for(long long i=4;i<=20190324;i++) { num[i]=(num[i-1]+num[i-2]+num[i-3])%MOD; // num[i]=(num[i-3]+num[i-2])%MOD; // num[i]=(num[i-1]+num[i])%MOD; } cout << num[20190324] << endl; return 0; }
四、結果
4659
Process finished with exit code 0