C++ を使用して指定された数値から重複する数字を削除する

WBOY
リリース: 2023-09-01 20:17:06
転載
776 人が閲覧しました

C++ を使用して指定された数値から重複する数字を削除する

この記事では、数値 n が与えられ、指定された数値内の重複する数値を削除する必要があります。

Input: x = 12224
Output: 124

Input: x = 124422
Output: 1242

Input: x = 11332
Output: 132
ログイン後にコピー

指定された問題では、すべての数値をループして重複を削除します。

解決策を見つける方法

指定されたメソッドでは、n 個のすべての数値を右から左に反復処理します。 n の剰余を 10 として取り、n を 10 で割ることによって、n の数を反復処理します。現在の数値は n mod 10 です。以前の番号と照合します。数値が等しい場合は、n 回繰り返します。類似していない場合は、この数値を新しい数値に追加し、前の数値を現在の数値に変更して、ループを続行します。

#include <bits/stdc++.h>

#define MOD 1000000007

using namespace std;

int main() {
   int n = 1222333232; // given n
   int new_n = 0; // new number
   int po = 1; // will b multiple of ten for new digits
   int prev = -1; // previous digit
   int curr; // current digit
   while(n) {
      curr = n % 10;
      if(prev != curr) { // if a digit is not repeated then we go in this block
         new_n = new_n + (curr * po); // we add a new digit to new_n
         po *= 10;
         prev = curr;
      }
      n /= 10;
   }
   cout << new_n << "\n";
   return 0;
}
ログイン後にコピー

出力

123232
ログイン後にコピー

上記のコードの説明

上記のメソッドでは、単純に n の数を反復処理します。番号が現在の番号と一致しない場合、その番号を新しい番号に追加します。番号が追加されると、現在と前の番号が一致する場合に番号の位置に使用される po も追加されます。これは実行されません。コードのブロックを開始し、n が 0 になるまでループを続けます。

結論

この記事では、指定された番号から重複する数字を削除する問題を解決しました。また、この問題に対する C プログラムと、この問題を解決する完全な方法 (通常の方法) も学びました。同じプログラムを C、Java、Python などの他の言語で書くことができます。この記事がお役に立てば幸いです。

以上がC++ を使用して指定された数値から重複する数字を削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート