pascal 现在有一个数列:0,1,3,8,21,55,144······,请编程求出数列中第2010个数除以6的余数

问题描述:

pascal 现在有一个数列:0,1,3,8,21,55,144······,请编程求出数列中第2010个数除以6的余数是多少?
1个回答 分类:综合 2014-11-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终止.
如果楼主是纯来求源代码的,那么还是请楼主自己动手编一下.
如果只是求思路,上面的解答已够.
 
 
展开全文阅读
剩余:2000
下一页:填词谢谢