將整數轉換為其文字表示形式是常見的程式設計任務。然而,在不使用大型查找表的情況下實現效率可能具有挑戰性。本文探討了一種克服此限制的方法。
解決方案的核心是一個名為 HumanFriendlyInteger
的類別。它包含一組數組來表示不同的面值(例如,個位、十位等),以及一個名為 FriendlyInteger
的方法,用於遞歸地構建文字表示形式。
FriendlyInteger
方法遞歸地操作以建立文字數字。其過程如下:
n
為 0,則傳回目前的 leftDigits
(用來處理最左邊的數字)。 n
小於 10,則直接使用個位數組來檢索文字形式。對於 10 到 19 之間的數值,它使用十幾位數組。 n
在 20 到 99 之間,則遞歸轉換 n % 10
(個位)並在其前面加上十位表示(例如,「Thirty」)。 n % 100
(十位和個位)並在其前面加上百位表示。 n % 1000
並附加適當的千位組表示(例如,「Thousand」、「Million」)。如果 n % 1000
為 0,則遞歸結束。 IntegerToWritten
方法是一個包裝函數,它處理負數和 0 的特殊情況,傳回「Zero」。
考慮以下使用方法範例:
<code class="language-csharp">using HumanFriendlyInteger; public class Program { public static void Main() { int number = 21; string writtenNumber = IntegerToWritten(number); Console.WriteLine($"{number} 的文字形式:{writtenNumber}"); } }</code>
此程式碼將輸出:
<code>21 的文字形式:Twenty One</code>
這種遞歸方法提供了一種高效的方法,可以將整數轉換為其文字形式,而無需依賴大型查找表。透過將問題分解成更小的部分,該方法以最小的開銷實現了預期的結果。
以上是在 C# 中,我們如何有效地將整數轉換為其對應的書面數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!