pascal 现在有一个数列:0,1,3,8,21,55,144······,请编程求出数列中第2010个数除以6的余数是多少?
pascal 现在有一个数列:0,1,3,8,21,55,144······,请编程求出数列中第2010个数除以6的余数
答案:1 悬赏:0 手机版
解决时间 2021-08-15 08:55
- 提问者网友:夢醒日落
- 2021-08-14 08:46
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-08-14 10:07
楼主,思路是这样的:
这个数列是斐波那契数列的子列,原来的斐波那契数列的
通项公式是:a[n]=a[n-1]+a[n-2]
数列前几项:0,1,1,2,3,5,8,13,21,34,55,89,144……
现在题目只取了斐波那契数列的第1、3、5、7、9等奇数项,所以变成了那个样子.
题目让你求数列2010项除以6的余数,那么我们也就只要求斐波那契数列第2010*2-1=4019项除以6的余数.
根据通项公式:
a[n] = a[n-1] + a[n-2]
两边模6取余:
a[n] mod 6 = (a[n-1] + a[n-2]) mod 6
=a[n-1] mod 6 + a[n-2] mod 6
这样我们就得到新的斐波那契模6数列:
0,1,1,2,3,5,2,1,3,4,1,5,0,5,5,……
也就是说,要求第n项,只要算第n-1和n-2这两项的和,再模6,作为第n项的值.
循环至4019终止.
如果楼主是纯来求源代码的,那么还是请楼主自己动手编一下.
如果只是求思路,上面的解答已够.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯