Die Münchhausen-Zahl ist eine ungerade Zahl mit eindeutigen Eigenschaften. Eine Zahl gilt als Münchhausen-Zahl, wenn die Summe ihrer Ziffern (ihrer Potenzen) gleich der ursprünglichen Zahl ist. Diese Zahlen sind ungewöhnlich und viele von ihnen sind unbekannt. Wenn die Definition 00 = 0 verwendet wird, kann 0 auch als Münchhausen-Zahl betrachtet werden.
Der folgende Artikel bietet eine Methode zur Bestimmung, ob eine Zahl eine Münchhausen-Zahl ist, unter Berücksichtigung dieser Merkmale von Münchhausen-Zahlen.
Die aktuelle Aufgabe besteht darin, zu prüfen, ob eine gegebene ganze Zahl n eine Münchhausen-Zahl ist, d. h. wenn jede Zahl auf ihre eigene Potenz erhöht und summiert wird, ist das Ergebnis gleich der ursprünglichen Zahl. Wenn es sich um eine Münchhausen-Zahl handelt, sollte das Programm true zurückgeben, andernfalls sollte es false zurückgeben.
Input: 1 Output: True
Erklärung - (1 hoch 1. Potenz) = 11 = 1.
Da die resultierende Zahl der ursprünglichen Zahl entspricht, ist 1 die Münchhausen-Zahl.
Input: 1603 Output: False
Erklärung − (1 hoch 1) + (6 hoch 6) + (0 hoch 0) + (3 hoch 3) = 1< super>1 + 66 + 00 + 33 ≠ 1603.
Dies entspricht 46684. Da die resultierende Zahl nicht mit der ursprünglichen Zahl übereinstimmt, ist 1603 keine Münchhausen-Zahl.
Input: 3435 Output: True
Erklärung − (3 hoch 3) + (4 hoch 4) + (3 hoch 3) + (5 hoch 5) = 3< super>3 + 44 + 33 + 55 = 3435.
Da die resultierende Zahl der ursprünglichen Zahl entspricht, ist 3435 die Münchhausen-Zahl.
Input: 4335 Output: False
Erklärung − (4 hoch 4) + (3 hoch 3) + (3 hoch 3) + (5 hoch 5) = 44 + 33 + 33 + 55 ≠ 4335.
Da die resultierende Zahl nicht mit der ursprünglichen Zahl übereinstimmt, ist 4335 keine Münchner Zahl.
Um festzustellen, ob es sich bei der angegebenen Zahl um eine Münchhausen-Zahl handelt, müssen wir wissen, ob das Ergebnis der Addition jeder Zahl mit sich selbst mit der ursprünglichen Zahl übereinstimmt. Mit den folgenden Methoden können Sie die Summe berechnen und feststellen, ob das Ergebnis mit der ursprünglichen Zahl übereinstimmt.
Die Methode umfasst die folgenden Schritte –
Zerlegen Sie die angegebene Zahl in ihre einzelnen Ziffern.
Erhöhe jede Zahl um sich selbst.
Ergebnisse hinzufügen.
Vergleichen Sie die Summe mit der ursprünglichen Zahl.
Antworten anzeigen.
Funktion is_munchhausen()
Summe initialisieren = 0
Temp = n
gleichzeitig (Temperatur > 0)
Ziffer initialisieren = temp % 10
Summe = Summe + pow(Zahl, Zahl)
Temperatur=Temperatur/10
Rückgabesumme==n
Funktion main()
N initialisieren
if (is_munchhausen())
cout <<"Münchhausen-Nummer"<<“明希豪森数”
Andere
cout << „Nicht-Sekten-Hausen-Nummer“
Ausdruck
Das Programm ermittelt, ob eine Zahl eine Münchhausen-Zahl ist, indem es die Funktion is_munchhausen() aufruft. Diese Funktion verwendet eine temporäre Variable gleich n und eine weitere Variable sum, um die Summe der Ergebnisse jeder über sich selbst summierten Zahl zu speichern.
Verwenden Sie in jeder Iteration der Schleife den Operator „%“, um auf jede einzelne Ziffer von temp zuzugreifen. Es gibt die Ziffer ganz rechts der Zahl zurück. Diese Zahl wird dann auf sich selbst erhöht und zur Gesamtsumme addiert. Am Ende jeder Iteration wird temp durch 10 geteilt, um auf die nächste Zahl zuzugreifen. Die Schleife läuft, bis die Temperatur > 0 ist.
// C++ code for Münchhausen Number #include <iostream> #include <cmath> using namespace std; // this function is used to check out whether the given number is Münchhausen Number or not bool is_munchhausen(int n){ int sum = 0; int temp = n; while (temp > 0){ int digit = temp % 10; //yields the rightmost digit as remainder sum = sum + pow(digit, digit); temp = temp / 10; // yields the remaining number } return (sum == n); // returns true if sum is equal to original number } // Driver Code int main(){ int n = 3253; cout << "input number: " << n << endl; if (is_munchhausen(n)){ cout << "Münchhausen Number" << endl; } else { cout << "Non-Münchhausen Number" << endl; } return 0; }
input number: 3253 Non-Münchhausen Number
Zeitkomplexität – O(log n) Zeitkomplexität, wobei n der Wert des Eingabeparameters ist. Dies liegt daran, dass die Anzahl der Iterationen der while-Schleife in der Funktion is_munchhausen() von der Anzahl der Ziffern in der angegebenen Zahl abhängt, die proportional zu log(n) zur Basis 10 ist. Diese Funktion wird in der Hauptfunktion nur einmal aufgerufen, sodass die Gesamtkomplexität des Programms proportional zu log(n) ist.
Raumkomplexität - O(1). Diese Funktion verwendet festen Speicher zum Speichern der ganzzahligen Variablen sum und temp, sodass ihre Speicherplatzkomplexität unabhängig von der Größe der Eingabeargumente konstant ist.
Zusammenfassend lässt sich sagen, dass eine Münchhausen-Zahl eine eindeutige Zahl ist, die als Summe ihrer eigenen Zahlen ausgedrückt wird. Sie kommen nicht häufig vor und es kann eine schwierige Aufgabe sein, sie zu finden. Die in diesem Artikel besprochene Lösung bietet eine Möglichkeit, in logarithmischer Zeit einfach zu überprüfen, ob eine Zahl Münchhausen ist, ohne Hilfsraum zu verwenden. In diesem Artikel wird das Konzept der Münchhausen-Zahl anhand verschiedener Beispiele ausführlich erläutert. Verwenden Sie den enthaltenen C++-Code, um schnell festzustellen, ob eine bestimmte Zahl eine Münchhausen-Zahl ist.
Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, ob eine Zahl eine Münchhausen-Zahl ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!