斐波那契數列是一組第一位f1和第二位f2為1,從第三位開始,後一位是前兩位和的一組遞增數列fn=fn-1+fn-2。 那麼當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。
如:輸入格式
輸入包含乙個整數n。
輸出格式
輸出一行,包含乙個整數,表示fn除以10007的餘數。
樣例輸入10 此時fibonacc[ ] =
樣例輸出55
此處使用了動態定義陣列方式,將陣列實現動態規劃長度,使用了樣例輸入22 此時fibonacc[ ] =
樣例輸出7704
malloc
函式,關於malloc
函式可以參照malloc的用法和意義,有關於malloc
的一些詳細講解,在這兒不做過多的解釋,簡要介紹些動態定義陣列長度的方式
malloc函式的使用格式一般為int len;
int * num = (int*)malloc(sizeof(int) * len); //len生成的陣列長度,
此時num就是乙個為int型別的,可以容納len個元素的動態陣列
注:malloc是按位元組數生成的空間大小,不是按照陣列長度;動態陣列最後要free掉,這點和new生成後要delete的道理一致
#include
#include
#define n 10007
intmain()
printf
("%d\n"
,num[n-1]
);free
(num)
;}
10
55--
----
----
----
----
----
----
----
--process exited with return value 0
press any key to continue..
.
22
7704
----
----
----
----
----
----
----
----
process exited with return value 0
press any key to continue..
.
對於此類斐波拉契數列如果是採用陣列方式,則要考慮到陣列的長度定義問題,可以給定乙個很大範圍的陣列,這樣未來保證陣列不會越界,也可以採用malloc
動態定義陣列的長度,為了控制資料型別不會溢位,在此將每一項的的餘數存放在陣列裡面,保證了每一項都小於n
10007
,也控制了資料範圍在int內可以得到
藍橋杯 Fibonacci數列(數列 取模)
入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...
Fibonacci數列取餘10007
時間限制 1.0s 記憶體限制 256.0mb fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入包含乙個整數n。輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案...
斐波那契數列第N項f N 矩陣快速冪
矩陣快速冪 x n y n z n 定義矩陣a m n b p q a b有意義當且僅當n p。即a的列數等於b的行數。且c a b,c m q 例如 進入正題,由於現在全國卷高考不考矩陣,也沒多大了解。因為遇到了斐波那契這題.注意到 fn 1 fn fn 1 我們會有 則 所以我們只需要想辦法求矩...