昨天晚上看到了一道求解斐波那契数的编程题,里边介绍了通过矩阵来计算的办法。现将题摘录如下
Fibonacci数列是满足如下条件的整数数列:
F0 = 0
F1 = 1
FN = FN-1+FN-2 (N≥2)
Fibonacci数列的前10项如下:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …
另一个求解Fibonacci数列的公式是:
对于任意给定的整数N,请求出FN模10000的余数。
输入
输入包含多组测试数据。
每组数据占一行,仅包含一个整数n(0≤n≤1,000,000,000)最后一行为整数-1代表输入结束,不需要做处理。
输出
对于每组测试数据,输出FN模10000的余数。
Before you attain it, it is something
wonderful, but after you attain it, it is nothing special.
我觉得我现在已经到了nothing special的境界了。
言归正传,这题的思路想必大家都会,但是要将时间限制在5000ms估计就不是每个人都会的了。如何求一个矩阵的N次方呢,如果一个乘一个的话,很明显复杂度达到了