2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - C. 数列求值
生活随笔
收集整理的這篇文章主要介紹了
2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - C. 数列求值
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【問題描述】
給定數(shù)列 1, 1, 1, 3, 5, 9, 17, …,從第 4 項(xiàng)開始,每項(xiàng)都是前 3 項(xiàng)的和。
求第 20190324 項(xiàng)的最后 4 位數(shù)字。
【答案提交】
這是一道結(jié)果填空的題,你只需要算出結(jié)果后提交即可。
本題的結(jié)果為一個(gè) 4 位整數(shù)(提示:答案的千位不為 0),在提交答案時(shí)只填寫這個(gè)整數(shù),填寫多余的內(nèi)容將無法得分。
Ideas
一道斐波那契數(shù)列變形題,前三項(xiàng)累加就可以了,三個(gè)變量不斷迭代,往前滾動(dòng)計(jì)算。
注意要取余,不然數(shù)賊大,算不完的。
Code
C++
#include <iostream> #include <cstring> using namespace std; int main() {long long a = 1, b = 1, c = 1, num = 0;for (int i = 4; i <= 20190324; ++i) {num=(a + b + c) % 10000;c = b; b = a; a = num;}cout << num << endl;return 0; }Python
if __name__ == '__main__':a, b, c = 1, 1, 1for i in range(3, 20190324):a, b, c = b, c, (a + b + c) % 10000print(f"第 {i + 1} 項(xiàng):{c}")Answer: 4659
總結(jié)
以上是生活随笔為你收集整理的2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - C. 数列求值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年第十届蓝桥杯 - 省赛 - C
- 下一篇: LeetCode Algorithm 2