斐波那契數列第n項

2021-10-04 17:29:24 字數 1904 閱讀 6883

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 由於結果...