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

更新於:2020年10月9日

468 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告