发布时间:2023-11-04 12:00
【写在前边】
这次的题还是比较难的,只做出来7道,交上去6道,还有一半是暴力做的。只求国三了
开局两道填空题用了快两个小时,直接搞崩了心态。。淦!
本题解仅代表个人观点及思路,不代表标准答案。欢迎各位巨佬指导交流。
所有代码均存放于仓库:
Github:https://github.com/AYO-YO/Algorithm/tree/蓝桥杯_国赛
Gitee: https://gitee.com/ayo_yo/Algorithm/tree/蓝桥杯_国赛
【问题描述】
斐波那契数列的递推公式为: F n = F n − 1 + F n − 2 F_n = F_{n-1} + F_{n-2} Fn=Fn−1+Fn−2,其中 F 1 = F 2 = 1 F_1 = F_2 = 1 F1=F2=1。
请问,斐波那契数列的第 1 1 1至 202202011200 202202011200 202202011200项(含)中,有多少项的个位是 7 7 7。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
【思路分析】
这道题又是一个超大数,斐波那契本来就是指数级增长,直接爆肯定是不行的。
经过两位大佬@m0_62944359的勘误,原方法是错误的。
同时由评论区大佬@秋雨洗鸡肉提醒,斐波那契数列的个位数60个为1轮,直接1000内的数+100内的数是不对的,会导致部分数错误计算。
因此在此写出大佬@秋雨洗鸡肉的正确方法:
斐波那契数列个位数60个为一个循环
60个数中共有8个7
。
1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
因此,最终结果应为:
202202011200/60
Out[3]: 3370033520.0
_*8
Out[4]: 26960268160.0