Heim >Backend-Entwicklung >C++ >Ordnen Sie in C++ eine Zahl neu an, die auch dadurch neu angeordnet werden kann

Ordnen Sie in C++ eine Zahl neu an, die auch dadurch neu angeordnet werden kann

王林
王林nach vorne
2023-09-05 22:49:06773Durchsuche

Ordnen Sie in C++ eine Zahl neu an, die auch dadurch neu angeordnet werden kann

Wir erhalten eine Zahl vom Typ Ganzzahl, vorausgesetzt, es handelt sich um eine Zahl. Die Aufgabe besteht darin, die Ziffern einer Zahl so umzuordnen, dass die neu angeordneten Zahlen auch durch die gegebene Zahl teilbar sind.

Lassen Sie uns verschiedene Eingabe- und Ausgabeszenarien betrachten:

Eingabe - int Zahl = 100035

Ausgabe - Die Zahl, die nach der Neuanordnung durch Zahl geteilt werden kann, ist: 300105

Erklärung - Wir geben eine Ganzzahl, also 100035. Die Aufgabe besteht nun darin, diese gegebenen Zahlen so umzuordnen, dass die gebildete Zahl durch eine Zahl teilbar ist 100035. Nachdem wir die Zahlen neu angeordnet haben, erhalten wir 300105, die durch die Zahl 100035 teilbar ist.

Eingabe - int Zahl = 1000035

Ausgabe - Die neu angeordnete Zahl ist auch durch sie teilbar: 3000105

Erklärung - Wir erhalten eine Ganzzahl „Zahl“, die 1000035 ist. Die Aufgabe besteht nun darin, diese gegebenen Zahlen so umzuordnen, dass die gebildete Zahl durch 1000035 teilbar ist. Nachdem wir die Zahlen neu angeordnet haben, erhalten wir 3000105, die durch die Zahl 1000035 teilbar ist.

Eingabe - int Zahl = 28

Ausgabe - Die neu angeordnete Zahl ist auch durch sie teilbar: -1

Erklärung - Wir erhalten eine Ganzzahl „Zahl“, die 28 ist. Die Aufgabe besteht nun darin, diese vorgegebenen Zahlen so umzuordnen, dass die gebildete Zahl durch 28 teilbar ist. Nachdem wir die Zahlen neu angeordnet haben, erhalten wir 82, die nicht durch die Zahl 28 teilbar ist, sodass die Ausgabe -1 ist.

Die im folgenden Programm verwendete Methode lautet wie folgt:

  • Geben Sie eine Variable vom Typ Integer ein, vorausgesetzt, es handelt sich um eine Zahl, und übergeben Sie die Daten an die Funktion Rearrangement(number).

  • Erstellen Sie in der Funktion Rearrangement(number)

    • eine Vektorvariable, die eine Variable vom Typ Integer speichert, vorausgesetzt, es handelt sich um vec(10, 0).

    • Rufen Sie die Funktion total_count(number, vec) auf und übergeben Sie number und vec als Parameter an die Funktion.

    • Beginnen Sie mit einer Schleife von i bis 2, bis i weniger als 10 beträgt. Setzen Sie innerhalb der Schleife temp auf number * i.

    • Erstellen Sie eine Vektorvariable, die eine Variable vom Typ Integer speichert, vorausgesetzt, es handelt sich um vec_2(10, 0).

    • Rufen Sie die Funktion total_count(number, vec_2) auf und übergeben Sie number und vec_2 als Parameter an die Funktion.

    • Überprüfen Sie, ob gleich(vec.begin(), vec.end(), vec_2.begin()), und geben Sie dann temp zurück. Andernfalls wird -1 zurückgegeben.

  • In der Funktion total_count(int number, vector &vec_3)

    • startet die Schleife, wenn Zahl 1 ist. Setzen Sie innerhalb der Schleife vec_3 auf vec_3[Nummer % 10]++ und Nummer auf Nummer/10.

Beispiel

#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;
}

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

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

Das obige ist der detaillierte Inhalt vonOrdnen Sie in C++ eine Zahl neu an, die auch dadurch neu angeordnet werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen