1:斐波那契數列第n項
在斐波那契數列中,fib0=0,fib1=1,fibn=fibn−1+fibn−2(n>1)。
給定整數n,求fibn mod10000。
輸入格式
輸入包含多組測試用例。
每個測試用例佔一行,包含乙個整數n。
當輸入用例n=-1時,表示輸入終止,且該用例無需處理。
輸出格式
每個測試用例輸出乙個整數表示結果。
每個結果佔一行。
資料範圍
0≤n≤2∗109
輸入樣例:09
999999999
1000000000
-1輸出樣例:034
6266875
思路:矩陣快速冪 , 每次取模 。
#include
#include
long
long n,mod=
10000
;void
matrix1
(long
long a[2]
,long
long b[2]
[2])
;for
(int j=
0;j<
2;j++)}
memcpy
(a,c,
sizeof
(c));}
void
matrix2
(long
long b[2]
[2])
;for
(int i=
0;i<
2;i++)}
}memcpy
(b,c,
sizeof
(c));}
intmain()
;long
long b[2]
[2]=
;while
(n)printf
("%lld\n"
,a[0])
;}}return0;
}
2:斐波那契數列 10』
描述已知斐波那契數列 1,1,2,3,5,8,13,21每一項是前兩項的和。
請告訴laofu,第202003281331項的最後一位是多少。(大家寫到這題,是不是這個時間呢,嘿嘿~)
例如:第八項的最後一位是1
【答案提交】
這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果為乙個整數,在提交答案時只填寫這個數字,填寫多餘的內容將無法得分。
思路:最後一位只和最後一位有關,所以每次模10取最後一位。
#include
#include
long
long n,mod=
10,a[2]
=,b[2]
[2]=
;void
matrix1
(long
long a[2]
,long
long b[2]
[2])
;for
(int j=
0;j<
2;j++)}
memcpy
(a,c,
sizeof
(c));}
void
matrix2
(long
long b[2]
[2])
;for
(int i=
0;i<
2;i++)}
}memcpy
(b,c,
sizeof
(c));}
intmain()
printf
("%lld\n"
,a[0])
;return0;
}
1242 斐波那契數列的第N項
斐波那契數列的定義如下 f 0 0 f 1 1 f n f n 1 f n 2 n 2 1,1,2,3,5,8,13,21,34,55,89,144,233,377,給出n,求f n 由於結果很大,輸出f n 1000000009的結果即可。input 輸入1個數n 1 n 10 18 output...
1242 斐波那契數列的第N項
斐波那契數列的定義如下 f 0 0 f 1 1 f n f n 1 f n 2 n 2 1,1,2,3,5,8,13,21,34,55,89,144,233,377,給出n,求f n 由於結果很大,輸出f n 1000000009的結果即可。這道題由於n很大,所以我們不能用普通的暴力做法來做 我們需...
1242 斐波那契數列的第N項
1242 斐波那契數列的第n項 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 斐波那契數列的定義如下 f 0 0 f 1 1 f n f n 1 f n 2 n 2 1,1,2,3,5,8,13,21,34,55,89,144,233,377,給出n,求f n 由於結果...