C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でN番目のフィボナッチ数の最後の2桁を検索するプログラム


この問題では、番号Nが与えられます。私たちのタスクは、C++でN番目のフィボナッチ数の最後の2桁を見つけるプログラムを作成することです。

問題の説明

N番目のフィボナッチ数の最後の2桁(つまり、2つのLSB)を見つける必要があります。問題を理解するために例を見てみましょう

入力 :N =120

出力 :81

ソリューションアプローチ

簡単な解決策は、直接フィボナッチ式を使用してN番目の項を見つけることです。ただし、Nが大きい場合、この方法は実行できません。したがって、これを克服するために、最後の2桁が300項後に繰り返されるフィボナッチ数列のプロパティを使用します。つまり第75項の最後の2桁は、第975項のそれと同じです。

これは、300まで作業すると、考えられるすべての組み合わせが得られ、使用する用語を見つけるために、300の数値のmodが見つかることを意味します。

#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

  1. C ++を使用して、N階乗の合計の最後の2桁を検索します。

    ここでは、最後の2桁を取得する方法を説明します。 N階乗の合計の単位桁と10桁。したがって、N =4の場合、1になります。 + 2! + 3! + 4! =33.したがって、単位の場所は3で、10の場所は3です。結果は33になります。 10の後、10の場所は0のままになります。N=10以上の場合、00になります。階乗数のN=1から10のグラフを作成できます。 これらの手順を使用してこの問題を解決できます- nの値が10未満の場合、(1!+ 2!+…+ n!)mod 10 それ以外の場合、nの値が10以上の場合、(1!+ 2!+…+ 10!)mod 10 =13 例 #inc

  2. PythonでN番目のフィボナッチ数を見つけるプログラム

    数nがあるとすると、n番目のフィボナッチ項を見つける必要があります。 i番目のフィボナッチ項f(i)=f(i-1)+ f(i-2)がわかっているので、最初の2つの項は0、1です。 したがって、入力が15のような場合、出力は610になります。 これを解決するには、次の手順に従います- 最初:=0、2番目:=1 2からnの範囲のiについては、 temp:=1番目+2番目 最初:=2番目 秒:=一時 2番目に戻る 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve(self, n):   &n