Convertir un entier en sa représentation littérale est une tâche de programmation courante. Cependant, atteindre l’efficacité sans utiliser de grandes tables de recherche peut s’avérer difficile. Cet article explore une façon de surmonter cette limitation.
Le cœur de la solution est une classe appelée HumanFriendlyInteger
. Il contient un ensemble de tableaux pour représenter différentes valeurs faciales (par exemple des unités, des dizaines, etc.) et une méthode appelée FriendlyInteger
qui construit de manière récursive la représentation littérale.
FriendlyInteger
fonctionne de manière récursive pour construire des nombres littéraux. Le processus est le suivant :
n
est 0, renvoie le leftDigits
actuel (utilisé pour gérer le chiffre le plus à gauche). n
est inférieur à 10, utilisez directement le tableau des unités pour récupérer la forme littérale. Pour les valeurs comprises entre 10 et 19, il utilise un tableau de dizaines. n
est compris entre 20 et 99, convertissez récursivement n % 10
(le chiffre des unités) et ajoutez-le au début de la représentation des chiffres des dizaines (par exemple, « Trente »). n % 100
(chiffres des dizaines et des unités) et ajoute la représentation des chiffres des centaines devant lui. n % 1000
et ajoute la millième représentation de groupe appropriée (par exemple, "Mille", "Million"). Si n % 1000
vaut 0, la récursion se termine. IntegerToWritten
est une fonction wrapper qui gère le cas particulier des nombres négatifs et 0, renvoyant "Zéro".
Considérez les exemples d'utilisation suivants :
<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>
Ce code affichera :
<code>21 的文字形式:Twenty One</code>
Cette approche récursive fournit un moyen efficace de convertir des entiers vers leur forme littérale sans recourir à de grandes tables de recherche. En divisant le problème en parties plus petites, cette approche permet d'obtenir les résultats souhaités avec un minimum de frais généraux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!