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

C++で多数をrで割ったときに余りを見つけるプログラム


この問題では、大きな数と整数のRである文字列numが与えられます。私たちのタスクは、C++で大きな数をrで割ったときに余りを見つけるプログラムを作成することです。

問題の説明 −文字列で定義された数値を2桁の数値であるrで割ったときの余りを見つける必要があります。

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

入力

num = “123423450942121” r = 54

出力

7

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

余りを見つけるには、明らかに数を割る必要があります。ただし、巨大な数値の除算は複雑なプロセスであるため、プロセスを簡単にするために、桁ごとに除算します。そして、次の残りを保存します。このプロセスは、MSBからLSBまでの数値を含む文字列全体に対して続行されます。そして最後に残りが印刷されます。

ソリューションの動作を説明するプログラム

#include <iostream>
#include <string.h>
using namespace std;
int calcRem(string num, int R){
   int currDigit, rem = 0;
   for (int i = 0; i < num.length(); i++) {
      currDigit = rem * 10 + (num[i] - '0');
      rem = currDigit % R;
   }
   return rem;
}
int main() {
   string num = "123423450942121";
   int R = 54;
   cout<<"The remainder when large number is divided by r is"<<calcRem(num, R);
   return 0;
}

出力

The remainder when large number is divided by r is 7

  1. 再帰を使用して数値の階乗を見つけるC++プログラム

    非負の整数nの階乗は、n以下のすべての正の整数の積です。 例:4の階乗は24です。 4! = 4 * 3 * 2 *1 4! = 24 整数の階乗は、再帰プログラムまたは反復プログラムを使用して見つけることができます。 次のプログラムは、数値の階乗を見つけるための再帰プログラムを示しています- 例 #include <iostream> using namespace std; int fact(int n) {    if ((n==0)||(n==1))    return 1;    else   &

  2. 多数の階乗を見つけるPythonプログラム

    nの数が多いとします。その階乗を見つける必要があります。他のいくつかの言語では、整数データ型の範囲を超える可能性があるため、多数の階乗を見つけるのは非常に困難です。ただし、Pythonでは、長さを自動的に検出し、デフォルトで数値をより大きな整数形式に更新します。 したがって、入力がn =50の場合、出力はになります。 30414093201713378043612608166064768844377641568960512000000000000 これを解決するには、次の手順に従います- 数学ライブラリから階乗クラスをインポートする 任意の大きな値のnの階乗を計算する