Bei zwei gegebenen Zahlen besteht unsere Aufgabe darin, herauszufinden, ob sich die gegebene Zahl durch Multiplikation der anderen beiden Zahlen ergibt, sodass alle drei Zahlen zusammen eine 9-stellige Pan-Zahl ergeben.
Mit anderen Worten kann man sagen, dass wir herausfinden müssen, ob eine gegebene Zahl, wenn sie mit zwei anderen Zahlen kombiniert wird, eine Multiplikationsoperation ergibt, um die volle Zahl der ursprünglichen Zahl zu erhalten.
Wir können auf viele Situationen stoßen, in denen wir mehrere Lösungen für das Problem erhalten. Um die beste Zeitkomplexität zu erzielen, drucken wir einfach die erste gefundene Lösung aus und stoppen den iterativen Prozess.
Lösung: Lassen Sie uns zunächst besprechen, was eine vollstellige Zahl ist –
Eine n-stellige Zahl wird genau dann Pannummer genannt, wenn sie alle Ziffern von 1 bis n genau einmal verwendet. Das heißt, die Zahl kann als Permutation aller Zahlen von 1 bis n dargestellt werden, wobei jeweils nur eine Ziffer verwendet wird.
Zum Beispiel ist 6745312 eine 7-stellige Pan-Nummer, da alle Ziffern von 1 bis 7 verwendet werden
Lassen Sie uns dieses Problem nun anhand einiger Beispiele verstehen –
Given Number: 7254 Result obtained: Yes, the condition is true
Wie wir alle wissen, kann 7254 als Produkt von 39 und 186 ausgedrückt werden.
Durch Addition von 39, 186 und 7254 erhalten wir 391867254, die alle Zahlen von 1 bis 9 enthält. Jede Zahl wird nur einmal verwendet, d. h. es handelt sich um eine vollstellige Zahl bestehend aus 9 Ziffern.
Given Number: 6952 Result obtained: Yes, the condition is true
Lassen Sie uns nun Möglichkeiten besprechen, dieses Problem zu lösen −
Wir prüfen zunächst, indem wir alle Zahlenpaare finden, deren Produkt einer bestimmten Zahl entspricht. Dann erstellen wir für jedes mögliche Paar von Lösungszahlen eine Zeichenfolge und speichern alle drei Zahlen (die ursprüngliche Zahl und die beiden Faktoren, die dazu führen, dass das Produkt diese Zahl ist).
Lassen Sie uns nun einen funktionierenden Algorithmus für unsere Lösung finden.
Schritt 1 – Wiederholen Sie die Schleife, um alle Faktorpaare auf diese Zahl zu überprüfen.
Schritt 2 − Für jeden Teil der Faktoren erstellen wir eine Zeichenfolge, die die ursprüngliche Zahl und die beiden Faktoren enthält.
Schritt 3 – Sortieren Sie die gebildete Zeichenfolge mit der Funktion sort().
Schritt 4 – Jetzt erstellen wir eine weitere Zeichenfolge „123456789“
Schritt 5 – Vergleichen Sie die beiden Zeichenfolgen und geben Sie true zurück, wenn sie gleich sind.
Der Code für diese Methode lautet wie folgt:
#include <bits/stdc++.h> using namespace std; // this function checks whether the given string consist of pandigital numbers bool Is_Pandigital_product (string Original_string) { if ( Original_string.length() != 9 ) { return false; } char c[Original_string.length()]; strcpy(c, Original_string.c_str()); sort(c, c + Original_string.length()); string new_string = c; if(new_string.compare("123456789") == 0) // comparing both the strings { return true; } else { return true; } } bool PandigitalProduct_1_9(int num) // This function iterates over a loop till Sqrt(n) and searches for factors of given input. // for each factor, this loop calls for Is_Pandigital_product function { for (int Iterator = 1; Iterator * Iterator <= num; Iterator++) if (num % Iterator == 0 && Is_Pandigital_product(to_string(num) + to_string(Iterator) + to_string(num / Iterator))) return true; //Returns true if found pandigital number return false; } int main() { int num = 1234; if (PandigitalProduct_1_9(num) == true) cout << "yes the number " << num << " is a pandigital product"; else cout << "no the number " << num <<" is not a pandigital product"; return 0; }
yes the number 1234 is a pandigital product
Zeitkomplexität – Da wir eine einzelne Schleife verwenden, die von 1 bis sqrt(n) iteriert, beträgt die Zeitkomplexität dieser Lösung O(N^1/2)
Raumkomplexität – Da der Code keinen zusätzlichen Speicher benötigt, ist die Raumkomplexität linear, d. h. O(1).
In diesem Artikel untersuchen wir, was eine ganze Zahl ist und wie wir effizient feststellen können, ob eine bestimmte Zahl und ihre Faktoren (Paare) eine 9-stellige ganze Zahl ergeben, wenn sie nach der Multiplikation einer Zahl zu einer Zeichenfolge kombiniert werden.
Das obige ist der detaillierte Inhalt vonRundum digitale Produkte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!