在斐波那契數列中,fib0=0,fib1=1,fibn=fibn−1+fibn−2(n>1)
給定整數n,求fibnmod10000
輸入格式
輸入包含多組測試用例。
每個測試用例佔一行,包含乙個整數n。
當輸入用例n=-1時,表示輸入終止,且該用例無需處理。
輸出格式
每個測試用例輸出乙個整數表示結果。
每個結果佔一行。
資料範圍
0≤n≤2∗109
輸入樣例:09
999999999
1000000000
-1輸出樣例:034
6266875
思路:矩陣快速冪求解。重點在構造矩陣。
#include
#include
#define mod 10000
using
namespace std;
void
mul(
int a[2]
[2],
int f[2]
);for(
int i=
0;i<
1;i++)}
}memcpy
(f,ans,
sizeof
(ans));
}void
mulself
(int a[2]
[2])
;for
(int i=
0;i<
2;i++)}
}memcpy
(a,c,
sizeof
(c));}
intmain()
,},f[2]=
;while
(n)mulself
(a);
n>>=1;
} cout<<}}
斐波那契數列 遞迴與非遞迴
首先來說下遞迴,遞迴的思想是大事化小。斐波那契數列 1,1,2,3,5,8,13,21.設f n 是第n個斐波那契數,當n 2,斐波那契數都為1 當n 2,那麼第f n 個斐波那契數就等於前兩個斐波那契數之和。遞迴的 實現 includeint fbnq int n int main 輸入10,得到...
數學 斐波那契數列 遞迴 非遞迴
include pch.h include using std cout using std cin typedef long long ll int fib int n ll fib notrec int n int main return 0 題目給的f 0 1,就這麼寫了 斐波那契第n項 時間...
非遞迴的斐波那契數列(Python)
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 思路 斐波那契數列最典型最簡單的方法當然是遞迴了,但是如果面試碰到這道題用遞迴做,offer是拿不到的。我們知道斐波那契數列永遠只跟上兩個數有關,那麼很自然的想到,我就保留上兩個的數值就好。class solut...