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

C++では3桁の繰り返し数をすべて非常に大きな数で印刷します


この問題では、番号が与えられます。そして、3桁の繰り返し番号をすべて印刷する必要があります。

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

Input: 98769876598765
Output:
   987: 3 times
   876: 3 times
   765: 2 times

この問題を解決するために、文字列に格納されている多数を使用します。数字の桁は文字として数えられます。ここで、最初の3つの数値を確認してから、3番目のインデックスから最後までチェックして、新しい数値を取得します。この後、次の3桁の数字がその頻度を数えているかどうかを確認します。最後に、頻度が1を超える3桁の数字をすべて印刷します。

以下のコードは私たちのソリューションを実装します

#include <bits/stdc++.h>
using namespace std;
void printRepeatingNumber(string s) {
   int i = 0, j = 0, val = 0;
   map <int, int> threeDigitNumber;
   val = (s[0] - '0') * 100 + (s[1] - '0') * 10 + (s[2] - '0');
   threeDigitNumber[val] = 1;
   for (i = 3; i < s.length(); i++) {
      val = (val % 100) * 10 + s[i] - '0';
      if (threeDigitNumber.find(val) != threeDigitNumber.end()) {
         threeDigitNumber[val] = threeDigitNumber[val] + 1;
      } else {
         threeDigitNumber[val] = 1;
      }
   }
   for (auto number : threeDigitNumber) {
      int key = number.first;
      int value = number.second;
      if (value > 1)
         cout<<key<<": "<<value<<" times\n";
   }
}
int main() {
   string num = "98769876598765";
   cout<<"All 3 digit repreating numbers are :\n";
   printRepeatingNumber(num);
}
出力
All 3 digit repeating numbers are −
765: 2 times
876: 3 times
987: 3 times

  1. C++でのデュードニー番号

    与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。 番号はヘンリー・デュードニーによって発見されました 。その数式 は- ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。 問題を理解するために例を見てみましょう 入力: N =17592 出力: いいえ 説明: 与えられた番号はダドニー番号ではありません。 ソリューションアプローチ- 解決策は、デュードニー番号の基本的な定義にあります。

  2. C++で3と5で割り切れるすべての数値を印刷するプログラム

    このチュートリアルでは、指定された数値より3と5で割り切れるすべての数値を出力するプログラムについて説明します。 このために、Nという数字が与えられます。私たちのタスクは、3と5の両方で割り切れるN未満のすべての数字を印刷することです。 例 #include <iostream> using namespace std; //printing the numbers divisible by 3 and 5 void print_div(int N){    for (int num = 0; num < N; num++){