ホームページ  >  記事  >  バックエンド開発  >  C++ では、それによって並べ替えることもできる数値を並べ替えます。

C++ では、それによって並べ替えることもできる数値を並べ替えます。

王林
王林転載
2023-09-05 22:49:06746ブラウズ

C++ では、それによって並べ替えることもできる数値を並べ替えます。

数値であると仮定して、整数型の数値を与えます。このタスクは、再配置された数値が指定された数値でも割り切れるように、数値の桁を再配置することです。

さまざまな入力および出力シナリオを見てみましょう:

入力 - int 数値 = 100035

出力 - 最後のものを並べ替えます数値で割ることができる数値は次のとおりです: 300105

説明 - 整数値 100035 が与えられます。ここでのタスクは、形成された数値が数値で割り切れるように、これらの与えられた数値を並べ替えることです。 100035。したがって、数値を並べ替えると 300105 が得られ、これは数値 100035 で割り切れます。

入力 - int 数値 = 1000035

出力 - 並べ替えられた数値も割り切れます: 3000105

#説明 - 整数「number」が与えられています。これは 1000035 です。ここでのタスクは、形成された数値が 1000035 で割り切れるように、これらの与えられた数値を並べ替えることです。したがって、数値を並べ替えると 3000105 が得られ、これは数値 1000035 で割り切れます。

入力 - int 数値 = 28

出力 - 再配置された数値は、-1

# で割り切れます。 ##説明

- 整数「number」、つまり 28 が与えられます。ここでの課題は、形成された数値が 28 で割り切れるように、これらの与えられた数値を並べ替えることです。したがって、数値を並べ替えると 82 が得られますが、これは数値 28 で割り切れないため、出力は -1 になります。 以下のプログラムで使用するメソッドは次のとおりです。

    整数型の変数を数値として入力し、関数Rearrangement(number)にデータを渡します。 )。
  • 関数 Rearrangement(number)
    • 整数型変数を格納するベクトル変数を vec(10, 0 として) 作成します。 )。
    • 関数 total_count(number, vec) を呼び出し、number と vec をパラメーターとして関数に渡します。
    • i が 10 未満になるまで、i から 2 までのループを開始します。ループ内で、temp を数値 * i に設定します。
    • 整数型変数を格納するベクトル変数を vec_2(10, 0) として作成します。
    • 関数 total_count(number, vec_2) を呼び出し、number と vec_2 をパラメーターとして関数に渡します。
    • 等しいかどうかを確認し(vec.begin(), vec.end(), vec_2.begin())、tempを返します。それ以外の場合は、-1 が返されます。
    ##関数 total_count(int number, Vector &vec_3) 内
  • #number が 1 サイクルのときに開始します。ループ内で、vec_3 を vec_3[number % 10] に設定し、number をnumber / 10 に設定します。
  • #include<bits/stdc++.h>
    using namespace std;
    void total_count(int number, vector<int> &vec_3){
       while(number){
          vec_3[number % 10]++;
          number = number / 10;
       }
    }
    int Rearrangement(int number){
       vector<int> vec(10, 0);
       total_count(number, vec);
       for(int i = 2; i < 10; i++){
          int temp = number * i;
          vector<int> vec_2(10, 0);
          total_count(temp, vec_2);
          if(equal(vec.begin(), vec.end(), vec_2.begin())){
             return temp;
          }
       }
       return -1;
    }
    int main(){
       int number = 100035;
       cout<<"Rearrangement of a number which is also divisible by it is: "<<Rearrangement(number);
       return 0;
    }
出力

上記のコードを実行すると、次の出力が生成されます

Rearrangement of a number which is also divisible by it is: 300105

以上がC++ では、それによって並べ替えることもできる数値を並べ替えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。