ホームページ  >  記事  >  バックエンド開発  >  。整数を英単語に変換

。整数を英単語に変換

PHPz
PHPzオリジナル
2024-08-08 07:00:12776ブラウズ

. Integer to English Words

273.整数を英単語に変換

ハード

トピック : 数学、文字列、再帰

非負の整数を英語の単語表現に変換します。

例 1:

  • 入力: 数値 = 123
  • 出力:「百二十三」

例 2:

  • 入力: 数値 = 12345
  • 出力:「12,345」

例 3:

  • 入力: 数値 = 1234567
  • 出力:「100万23405567」

制約:

  • 0 31 - 1

ヒント:

  1. 数字を単語の塊に分割するパターンがわかりましたか?たとえば、123 と 123000。
  2. 数値を千単位 (3 桁) にグループ化します。 1000 未満の数値を取るヘルパー関数を作成し、そのチャンクだけを単語に変換できます。
  3. 多くの特殊なケースがあります。良いテストケースにはどのようなものがありますか?コードは 0 などの入力でも機能しますか?それとも1000010? (中央のチャンクはゼロなので、出力しないでください)

解決策:

この問題を解決するには、次の手順に従います:

  1. 数字の単語を定義します。 1 桁、10 の位、10 の位、および 1000 の位のグループを表す単語の配列が必要です。

  2. ヘルパー関数を作成します: この関数は 1000 未満の数値を処理し、英単語に変換します。

  3. 再帰関数: メイン関数は、数値のチャンクを再帰的に処理し、適切な 1000 のグループ ラベル (例: Thousand、Million、Billion) を追加します。

  4. エッジ ケース: 0 や中間チャンクがゼロである数値などのエッジ ケースを処理します。

このソリューションを PHP で実装してみましょう: 273。整数を英単語に変換

<?php
// Test cases
echo numberToWords(123) . "\n"; // Output: "One Hundred Twenty Three"
echo numberToWords(12345) . "\n"; // Output: "Twelve Thousand Three Hundred Forty Five"
echo numberToWords(1234567) . "\n"; // Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
?>

説明:

  1. メイン関数 (numberToWords):

    • 入力された数値が 0 かどうかを確認し、「ゼロ」を返します。
    • 1,000 個のグループ化のラベルを使用して、1,000 個の配列を初期化します。
    • ヘルパー関数を使用して各チャンクを単語に変換し、数値を数千単位で繰り返し処理します。
    • 各チャンクの単語を適切な 1000 グループ ラベルと組み合わせて、最終的な結果文字列を構築します。
  2. ヘルパー関数 (ヘルパー):

    • 20 未満の数値と 10 の倍数には事前定義された配列を使用します。
    • 1000 未満の数字の英単語を再帰的に構築します。
      • 20 未満の数値の場合は、対応する単語を直接返します。
      • 100 未満の数値の場合、10 の位の単語と単位の位の再帰呼び出しの結果を組み合わせます。
      • 100 以上の数字の場合、百の位の単語と剰余の再帰呼び出しの結果を組み合わせます。

このソリューションは制約と特殊なケースを効果的に処理し、指定された範囲内の任意の数値に対して正しい英単語表現を提供します。

連絡先リンク

このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!

このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:

  • LinkedIn
  • GitHub

以上が。整数を英単語に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。