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

C++で2^nの下2桁を検索するプログラム


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

問題の説明

最後の2桁を検索します。下2桁の積のみを使用します。そして、計算を小さくするために他のものを残します。

問題を理解するために例を見てみましょう

入力 :N =12

出力 :96

説明

2 ^ 12 =4096

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

この問題を解決するための直接的なアプローチは、2 ^ Nの値を見つけ、それを100で割ったときの余りを見つけることです。

#include <iostream>
using namespace std;
int findLastDigit(int N){
   int powerVal = 1;
      for(int i = 0; i < N; i++){
         powerVal *= 2;
      }
   return powerVal%100;
}
int main() {
   int N = 14;
   cout<<"The last two digits of 2^"<<N<<" is "<<findLastDigit(N);
   return 0;
}

出力

The last two digits of 2^14 is 84

Nの値が大きい場合、プログラムはオーバーフローするため、このアプローチは効果的ではありません。

より良いアプローチ 値から2桁のみを考慮します。そして、パワーごとに2を掛けます。

2 ^ 14の場合、それぞれの最後の2桁は84です。計算を節約するために、整数ではなく84に2を掛けます。したがって、(84 * 2)%100=68。

#include <iostream>
using namespace std;
int findLastDigit(int N){
   int powerVal = 1;
   for(int i = 0; i < N; i++){
      powerVal = (powerVal * 2)%100;
   }
   return powerVal;
}
int main() {
   int N = 15;
   cout<<"The last two digits of 2^"<<N<<" is "<<findLastDigit(N);
   return 0;
}

出力

The last two digits of 2^15 is 68

  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. グラフ行列の逆行列を見つけるためのC++プログラム

    これは、グラフ行列の逆行列を見つけるためのC++プログラムです。行列の逆行列は、行列が非特異である場合にのみ存在します。つまり、行列式は0であってはなりません。行列の逆行列は多くの方法で見つけることができます。ここでは、随伴行列とその行列式を使用して、グラフ行列の逆行列を見つけます。例に含まれる手順 Begin    function INV() to get the inverse of the matrix:    Call function DET().    Call function ADJ().