給定數列 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 個整數的最短的等差數列有幾項?輸入格式...