C++程式:查詢第n個斐波那契數的最後一位數字
在這個問題中,我們給定一個數字N。我們的任務是建立一個C++程式來查詢第N個斐波那契數的最後一位數字。
問題描述
我們需要找到第N個斐波那契數的最後一位數字(即最低有效位)。
讓我們舉個例子來理解這個問題,
輸入:N = 120 輸出:1
解決方案
一個簡單的解決方案是使用直接的斐波那契公式來查詢第N項。但是當N是一個大數時,這種方法不可行。為了克服這個問題,我們將使用斐波那契數列的一個性質,即最後一位數字在60項之後重複。即第75項的最後一位數字與第135項的最後一位數字相同。
這意味著計算到60項將為我們提供所有可能的組合,並且為了找到使用哪一項,我們將找到該數字模60的結果。
示例
#include
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 findLastDigitNterm(int N) {
N = N % 60;
return ( fibo(N)%10);
}
int main() {
int N = 683;
cout<<"The last digit of "<<N<<"th Fibonacci term is "<<findLastDigitNterm(N);
return 0;
}輸出
The last digit of 683th Fibonacci term is 1
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP