273. Entier en mots anglais
Dur
Thèmes : Mathématiques, Chaînes, Récursion
Convertissez un nombre entier non négatif en sa représentation de mots anglais.
Exemple 1 :
Exemple 2 :
Exemple 3 :
Contraintes :
Indice :
Solution :
Pour résoudre ce problème, nous pouvons suivre ces étapes :
Définissez les mots pour les nombres : Nous avons besoin de tableaux pour les mots représentant des groupes de chiffres simples, d'adolescents, de dizaines et de milliers.
Créez une fonction d'assistance : Cette fonction gérera les nombres inférieurs à 1000, les convertissant en mots anglais.
Fonction récursive : La fonction principale traitera de manière récursive des morceaux du nombre, en ajoutant l'étiquette de groupe de milliers appropriée (par exemple, Millier, Million, Milliard).
Cas extrêmes : Gérez les cas extrêmes comme 0 et les nombres où les morceaux intermédiaires sont nuls.
Implémentons cette solution en PHP : 273. Entier vers mots anglais
Explication:
Fonction principale (numberToWords) :
- Vérifie si le nombre saisi est 0 et renvoie "Zéro".
- Initialise le tableau des milliers avec les étiquettes pour mille regroupements.
- Traite de manière itérative le nombre en morceaux de milliers, en utilisant la fonction d'assistance pour convertir chaque morceau en mots.
- Construit la chaîne de résultat final en combinant les mots de chaque morceau avec l'étiquette de mille groupes appropriée.
Fonction d'assistance (helper) :
- Utilise des tableaux prédéfinis pour les nombres inférieurs à 20 et pour les dizaines multiples.
- Construit de manière récursive les mots anglais pour les nombres inférieurs à 1000 :
- Pour les nombres inférieurs à 20, renvoie directement le mot correspondant.
- Pour les nombres inférieurs à 100, combine le mot pour la place des dizaines avec le résultat d'un appel récursif pour la place des unités.
- Pour les nombres 100 et plus, combine le mot pour la place des centaines avec le résultat d'un appel récursif pour le reste.
Cette solution gère efficacement les contraintes et les cas extrêmes, fournissant la représentation correcte des mots anglais pour n'importe quel nombre dans la plage donnée.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
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!