第十屆藍橋杯省賽C B組 數列求值

2021-10-04 13:09:01 字數 1290 閱讀 9335

給定數列 1, 1, 1, 3, 5, 9, 17, …,從第 4 項開始,每項都是前 3 項的和。

求第 20190324 項的最後 4 位數字。

看題肯定就是遞推沒跑。

for

(int i =

4; i <=

20190324

; i++

)a[i]

=(a[i-1]

+ a[i-2]

+ a[i-3]

);

1.這道題不%10000就會資料過大,且後四位也只受到後四位的變化影響,所以我們每個數都mod10000;

for

(int i =

4; i <=

20190324

; i++

)a[i]

=(a[i-1]

+ a[i-2]

+ a[i-3]

)%10000

;

2.oj上陣列開到20190324這種程度會出mle問題,所以我們不開太大的陣列而只固定4個位子,把整個數列每次移動一格取四格來看,則每次移動後,第四個是前三之和,前三個每次移動都分別變成了後乙個的大小。

部分變動過程

1 1 1 3

1 1 3 5

1 3 5 9

3 5 9 17

int a[4]

=;a[4

]=(a[3

]+ a[2]

+ a[1]

)%10000

;for

(int j =

1; j <=

3; j++

)a[j]

= a[j +1]

;

#include

using

namespace std;

int a[4]

=;intmain()

cout << a[4]

;return0;

}

方法二:

#include

using

namespace std;

int a,b,c;

const

int tlen =

10000

;int

main()

cout

}

第十屆藍橋杯省賽C B組 數列求值

試題 c 數列求值 本題總分 10 分 問題描述 給定數列 1,1,1,3,5,9,17,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。答案提交 答案 4659 思路 因為結果只要最後4位數字,所以每做一次加法就對10000取模即可。include incl...

第十屆藍橋杯省賽C B組 數列求值

試題 c 數列求值 本題總分 10 分 問題描述 給定數列 1,1,1,3,5,9,17,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。答案提交 答案 4659 思路 因為結果只要最後4位數字,所以每做一次加法就對10000取模即可。感想 這個題我開始以為陣...

第十屆藍橋杯省賽C B組 等差數列

第十屆藍橋杯省賽c b組 等差數列 時間限制 1.0s 記憶體限制 256.0mb 本題總分 20 分 問題描述 數學老師給小明出了一道等差數列求和的題目。但是粗心的小明忘記了一 部分的數列,只記得其中 n 個整數。現在給出這 n 個整數,小明想知道包含這 n 個整數的最短的等差數列有幾項?輸入格式...