首頁  >  文章  >  後端開發  >  。整數到英文單字

。整數到英文單字

PHPz
PHPz原創
2024-08-08 07:00:12803瀏覽

. Integer to English Words

273。整數到英文單字

主題:數學、字串、遞歸

將非負整數 num 轉換為其英文單字表示形式。

範例1:

  • 輸入: num = 123
  • 輸出:「一百二十三」

範例2:

  • 輸入: num = 12345
  • 輸出:「一萬二千三百四十五」

範例 3:

  • 輸入: num = 1234567
  • 輸出:「一百二三四千五百六十七」

約束:

  • 0 31 - 1

提示:

  1. 您是否看到將數字分成單字塊的模式?例如,123 和 123000。
  2. 以千位(3 位數字)將數字分組。您可以編寫一個輔助函數,接受小於 1000 的數字並將該區塊轉換為單字。
  3. 有很多邊緣情況。有哪些好的測試案例?您的程式碼可以處理 0 這樣的輸入嗎?還是1000010? (中間區塊為零,不應列印出來)

解:

要解決這個問題,我們可以按照以下步驟操作:

  1. 定義數字的單字:我們需要用來表示個位數、十位、十位和千位分組的單字的陣列。

  2. 建立一個輔助函數:此函數將處理小於 1000 的數字,並將它們轉換為英文單字。

  3. 遞歸函數:主函式將遞歸處理數字區塊,加入適當的千組標籤(例如,千、百萬、十億)。

  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. 主要功能(數字到單字):

    • 檢查輸入數字是否為 0 並傳回「零」。
    • 使用千個分組的標籤初始化千個數組。
    • 以數千為單位迭代處理數字,使用輔助函數將每個區塊轉換為單字。
    • 透過將每個區塊的單字與適當的千組標籤組合來建構最終結果字串。
  2. 輔助函數(助手):

    • 對 20 以下的數字和十倍數使用預定義數組。
    • 遞歸構造小於1000的數字的英文單字:
      • 對於小於20的數字,直接傳回對應的單字。
      • 對於小於 100 的數字,將十位的單字與個位的遞歸呼叫結果組合起來。
      • 對於 100 以上的數字,將百位的單字與餘數的遞歸呼叫結果組合起來。

該解決方案有效地處理約束和邊緣情況,為給定範圍內的任何數字提供正確的英語單字表示。

聯絡連結

如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是。整數到英文單字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn