Heim  >  Artikel  >  Backend-Entwicklung  >  Ermitteln Sie rekursiv die Summe der Ziffern von n^x, wobei n und x beide sehr groß sind, implementiert mit C++

Ermitteln Sie rekursiv die Summe der Ziffern von n^x, wobei n und x beide sehr groß sind, implementiert mit C++

WBOY
WBOYnach vorne
2023-09-11 08:29:02745Durchsuche

Ermitteln Sie rekursiv die Summe der Ziffern von n^x, wobei n und x beide sehr groß sind, implementiert mit C++

Wir erhalten positive Ganzzahlvariablen „num“ und „x“. Die Aufgabe besteht darin, num^x rekursiv zu berechnen und dann die Ziffern der resultierenden Zahlen zu addieren, bis einzelne Ziffern erreicht sind. Die resultierenden einzelnen Ziffern werden als Ausgabe ausgegeben.

Schauen wir uns hierfür verschiedene Eingabe-Ausgabe-Szenarien an –

Eingabe − int num = 2345, int x = 3

Ausgabe − Rekursive Summe ^x von Zahlen in n , wobei n und x sehr groß sind : 8

Erläuterung− Wir erhalten positive ganzzahlige Werte num und x mit dem Wert 2345 und der Potenz 3. Berechnen Sie zunächst 2345^3, was 12.895.213.625 entspricht. Jetzt addieren wir diese Zahlen, also 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5, also 44. Jetzt addieren wir 4 + 4, also 8. Da wir einstellige Zahlen erreicht haben, beträgt die Ausgabe 8.

Eingabe− int num = 3, int x = 3

Ausgabe − Rekursive Summe von Zahlen in n^x, wobei n und x sehr groß sind: 9

Erklärung− Wir erhalten positive ganze Zahlen The Werte num und x, der Wert ist 3 und die Potenz ist 3. Berechnen Sie zuerst 3^3, also 9. Da wir bereits die einzelnen Ziffern erhalten haben, beträgt die Ausgabe 9 und es sind keine weiteren Berechnungen erforderlich.

Die im folgenden Programm verwendete Methode lautet wie folgt:

  • Geben Sie die Ganzzahlvariablen num und x ein und übergeben Sie die Daten zur weiteren Verarbeitung an die Funktion Recursive_Digit(num, x).

  • Innerhalb der Funktion Recursive_Digit(num, x)
    • deklarieren Sie die Variable „total“ als lang und legen Sie fest, dass sie die Funktion „total_digits(num)“ aufruft, die die numerische Summe der als Argumente übergebenen Zahlen zurückgibt.

    • Deklarieren Sie die Variable als temp vom Typ long und setzen Sie sie mit einer %-Potenz von 6.

    • Überprüfen Sie, ob Gesamt = 3 ODER Gesamt = 6 UND Leistung > 1 und geben Sie 9 zurück.

    • ELSE IF, Potenz = 1, dann Gesamtsumme zurückgeben.

    • li>
    • ELSE IF, Potenz = 0 und Rückgabe 1.

    • ELSE IF, temp - 0 Dann Rückkehr mit Aufruf von total_digits((long)pow(total, 6))

    • Ansonsten Rückgabe von total_digits((long)pow(total, temp)).

  • Interne Funktion long Total_digits(long num)

    • prüft, ob num = 0 und gibt 0 zurück. Überprüfen Sie IF, num % 9 = 0 und geben Sie 9 zurück.

    • Andernfalls geben Sie num % 9 zurück

  • Das obige ist der detaillierte Inhalt vonErmitteln Sie rekursiv die Summe der Ziffern von n^x, wobei n und x beide sehr groß sind, implementiert mit C++. 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