C++程式:求解斐波那契數列第N項的後兩位數字
在這個問題中,我們給定一個數字N。我們的任務是建立一個C++程式來求解斐波那契數列第N項的後兩位數字。
問題描述
我們需要找到斐波那契數列第N項的最後兩位數字(即最低兩位)。讓我們透過一個例子來理解這個問題:
輸入: N = 120
輸出: 81
解決方案
一個簡單的解決方案是使用直接的斐波那契公式來求解第N項。但是當N很大時,這種方法不可行。為了克服這個問題,我們將使用斐波那契數列的一個性質:後兩位數字每300項重複一次。也就是說,第75項的最後兩位數字與第975項的最後兩位數字相同。
這意味著計算到300項將給我們所有可能的組合,為了找到要使用哪一項,我們將使用該數字對300取模。
示例
#include <iostream>
using namespace std;
long int fibo(int N){
long int a=0,b=1,c;
for(int i=2; i<= N;i++) {
c=a+b; a=b; b=c;
}
return c;
}
int findLastTwoDigitNterm(int N) {
N = N % 300;
return ( fibo(N)%100);
}
int main() {
int N = 683;
cout<<"The last two digits of "<<N<<"th Fibonacci term are "<<findLastTwoDigitNterm(N);
return 0;
}輸出
The last two digits of 683th Fibonacci term are 97
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP