Heim  >  Artikel  >  Backend-Entwicklung  >  . Ganzzahl in englische Wörter

. Ganzzahl in englische Wörter

PHPz
PHPzOriginal
2024-08-08 07:00:12775Durchsuche

. Integer to English Words

273. Ganzzahl in englische Wörter

Schwer

Themen: Mathematik, String, Rekursion

Konvertieren Sie eine nicht negative Ganzzahl in ihre englische Wortdarstellung.

Beispiel 1:

  • Eingabe: num = 123
  • Ausgabe: „Einhundertdreiundzwanzig“

Beispiel 2:

  • Eingabe: num = 12345
  • Ausgabe: „Zwölftausenddreihundertfünfundvierzig“

Beispiel 3:

  • Eingabe: num = 1234567
  • Ausgabe: „Eine Million zweihundertvierunddreißigtausendfünfhundertsiebenundsechzig“

Einschränkungen:

  • 0 <= num <= 231 - 1

Hinweis:

  1. Haben Sie ein Muster bei der Aufteilung der Zahl in Wortblöcke gesehen? Zum Beispiel 123 und 123000.
  2. Gruppieren Sie die Zahl nach Tausendern (3 Ziffern). Sie können eine Hilfsfunktion schreiben, die eine Zahl kleiner als 1000 akzeptiert und nur diesen Teil in Wörter umwandelt.
  3. Es gibt viele Randfälle. Was sind einige gute Testfälle? Funktioniert Ihr Code mit Eingaben wie 0? Oder 1000010? (der mittlere Block ist Null und sollte nicht ausgedruckt werden)

Lösung:

Um dieses Problem zu lösen, können wir die folgenden Schritte ausführen:

  1. Definieren Sie die Wörter für Zahlen: Wir benötigen Arrays für die Wörter, die einzelne Ziffern, Zehner, Zehner und Tausendergruppen darstellen.

  2. Erstellen Sie eine Hilfsfunktion: Diese Funktion verarbeitet Zahlen unter 1000 und wandelt sie in englische Wörter um.

  3. Rekursive Funktion: Die Hauptfunktion verarbeitet Teile der Zahl rekursiv und fügt die entsprechende Tausendergruppenbezeichnung hinzu (z. B. Tausend, Million, Milliarde).

  4. Randfälle: Behandeln Sie Randfälle wie 0 und Zahlen, bei denen Zwischenblöcke Null sind.

Lassen Sie uns diese Lösung in PHP implementieren: 273. Ganzzahl in englische Wörter






Erläuterung:

  1. Hauptfunktion (numberToWords):

    • Überprüft, ob die eingegebene Zahl 0 ist und gibt „Null“ zurück.
    • Initialisiert das Tausender-Array mit den Beschriftungen für Tausender-Gruppierungen.
    • Verarbeitet die Zahl iterativ in Tausenderblöcken und wandelt jeden Block mithilfe der Hilfsfunktion in Wörter um.
    • Erstellt die endgültige Ergebniszeichenfolge, indem die Wörter für jeden Block mit der entsprechenden Tausendergruppenbezeichnung kombiniert werden.
  2. Helferfunktion (Helfer):

    • Verwendet vordefinierte Arrays für Zahlen unter 20 und für Zehner-Vielfache.
    • Erstellt rekursiv die englischen Wörter für Zahlen unter 1000:
      • Bei Zahlen kleiner als 20 wird direkt das entsprechende Wort zurückgegeben.
      • Kombiniert bei Zahlen unter 100 das Wort für die Zehnerstelle mit dem Ergebnis eines rekursiven Aufrufs für die Einerstelle.
      • Kombiniert für Zahlen ab 100 das Wort für die Hunderterstelle mit dem Ergebnis eines rekursiven Aufrufs für den Rest.

Diese Lösung bewältigt die Einschränkungen und Randfälle effektiv und stellt die korrekte Darstellung englischer Wörter für jede Zahl innerhalb des angegebenen Bereichs bereit.

Kontaktlinks

Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!

Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:

  • LinkedIn
  • GitHub

Das obige ist der detaillierte Inhalt von. Ganzzahl in englische Wörter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn