演算法題牛刀小試 Fibonacci數列

2022-08-23 02:45:13 字數 561 閱讀 2748

fibonacci數列的遞推公式為:fn=fn-1+fn-2,其中f1=f2=1。

當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。

資料規模與約定

1 <= n <= 1,000,000。

#include using namespace std;

int main()

cout<< now;

} return 0;

}

1.一定要注意輸出格式,cout後面不能再跟endl,否則會多輸出一行。

2.注意輸入範圍,n大於1所以當n=1,n=2時會cout兩個1。

3.本題最關鍵的地方,在於型別的選擇以及資料規模的判斷,在本題中,當n>>45時,資料規模會超過int(4位元組)的範圍,從而讓結果變成負數,即使改成了long long,也不足以支撐資料的範圍,因此需要在斐波那契數列的數字大於等於10007時,直接取餘10007,即使這樣也不會影響輸出結果(先計算fn再取餘跟每次求fn之前取余是等效的),而且能夠保證fn<10007,從而將範圍控制在10007以內,用int型別足以儲存。

nodejs 牛刀小試

目前在做乙個使用者登入驗證的案例 真是彎路 彎路 再彎路啊 不多說上 用到的模板 express 資料庫mysql 使用者校驗 socket.on judgeuser function nickname function err1,rows if rows.length 0 else 使用者註冊 s...

查詢 牛刀小試

給定乙個值k,在含有n個記錄的表中找出關鍵字等於k的記錄。若找到則返回該記錄的的位置或資訊,否則查詢失敗,返回相關的指示資訊。一 順序查詢 思路 元素沒有順序,因此要掃瞄整個陣列中的所有元素,逐個與k比較 相等則查詢成功,返回該元素位置 如果掃瞄結束沒有發現和k相等的元素,返回0 int searc...

dynamic 牛刀小試

今天在網上看帖時看到了這樣乙個問題 現在我用反射 personmodel.dll 呼叫乙個型別方法 getallpersons 返回person,其中person為 personmodel.dll 在定義,請問,我要怎麼操作才能取回返回的陣列值呢?恰好手頭沒事做,就順手寫了乙個demo,但在獲取到結...