斐波那契数列大家都非常熟悉咜的定义是: 对于给定的整数 n 和 m,我们希望求出: 公式参见【图1.png】 但这个数字依然很大所以需要再对 p 求模。 请严格按要求输出不要画蛇添足地打印类似:“请您输入…” 的多余内容。 所有代码放在同一个源文件中调试通过后,拷贝提交该源码 首先,关于斐波那契数嘚求取如果使用递归法求取,会出现远远超时;迭代法求取差不多也会超时此处,最好使用矩阵相乘法求取第n个斐波那契数 其次,關于求取前n个斐波那契数和的问题利用斐波那契数的性质(网上资料参考所得):S(n) = F(n+2) - 1,其中S(n)是前n个斐波那契数的和F(n + 2)是第n+2个斐波那契数。 最後要考虑n,m的取值问题经过使用计算机运算检测,一般n > 100F(n)就会超过long型最大值,所以此处建议使用BigInteger类型来存储斐波那契数。 下面的代碼仅供参考不保证n、m、p达到10^18数量级时,大整数类型的取余不会出现内存溢出问题哦 //求取矩阵ONE的n次方 //求取矩阵A*B的值 //获取第n个斐波那契数