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

C++プログラムで文字列として表される多数を分割する


このチュートリアルでは、文字列として表される多数を分割する方法を学習します。

文字列形式と除数で多数を与えました。プログラムはリマインダーを見つける必要があります。

まず、与えられた数の中で配当よりも大きい部分を見つけます。次に、残りの桁を1つずつ除数に追加します。

問題を解決するための手順を見てみましょう。

  • 除数とともに大きな数を初期化します。

  • 除数よりも大きい部分を抽出するまで、指定された数を繰り返します。

  • ここで、前の手順で残した場所から番号の最後まで繰り返します。

    • 抽出した部分を除数で割り、結果に追加します。

    • 次の桁で番号を更新します。

  • 結果がゼロかどうかを確認します。

  • そして結果を印刷します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
string divideLargeNumber(string number, int divisor) {
   // to store the result
   string result;
   int index = 0;
   // extracting the part that is greater than the given divisor
   int dividend = number[index] - '0';
   while (dividend < divisor) {
      dividend = dividend * 10 + (number[++index] - '0');
   }
   // iterating until all digits participate in the division
   while (number.size() > index) {
      result += (dividend / divisor) + '0';
      // adding the next digit to the dividend
      dividend = (dividend % divisor) * 10 + number[++index] - '0';
   }
   if (result.length() == 0) {
      return "0";
   }
   return result;
}
int main() {
   string large_number = "12345678901234567890";
   int divisor = 75;
   cout << divideLargeNumber(large_number, divisor) << endl;
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が得られます。

164609052016460905

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. 乱数を生成するC++プログラム

    C++を使用して乱数を生成する方法を見てみましょう。ここでは、0からある値の範囲のランダムな数値を生成しています。 (このプログラムでは、最大値は100です。) この操作を実行するために、srand()関数を使用しています。これはCライブラリにあります。関数voidsrand(unsigned int seed) 関数randで使用される乱数ジェネレーターをシードします 。 srand()の宣言は以下のようになります void srand(unsigned int seed) シードと呼ばれるパラメータを取ります。これは、疑似乱数ジェネレータアルゴリズムによってシードとして使用される整数

  2. アームストロング数をチェックするC++プログラム

    アームストロング数は、桁の合計が桁の総数の累乗に等しい数です。アームストロング数のいくつかの例は次のとおりです。 3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371 407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 = 407 番号がアームストロング番号であるかどうかをチェックするプログラムは次のとおりです。 例 #include <iostream> #include <cmath< using namespa