Méthode efficace de conversion d'entiers en tableaux numériques
Convertir un entier en son tableau de nombres à un chiffre est une tâche courante en programmation. Bien que l’approche traditionnelle utilisant la conversion et l’itération de chaînes soit simple, elle est inefficace pour les grands nombres. Voici quelques méthodes de conversion efficaces.
Méthode récursive
Une solution consiste à utiliser la récursivité pour diviser l'entier en parties plus petites. Le code C# suivant illustre cette approche :
<code class="language-c#">public Stack<int> NumbersIn(int value) { if (value == 0) return new Stack<int>(); var numbers = NumbersIn(value / 10); numbers.Push(value % 10); return numbers; } var numbers = NumbersIn(987654321).ToArray();</code>
Méthode de pile non récursive
Une version non récursive utilisant la stack peut également être implémentée :
<code class="language-c#">public int[] NumbersIn(int value) { var numbers = new Stack<int>(); for (; value > 0; value /= 10) numbers.Push(value % 10); return numbers.ToArray(); }</code>
Méthode de tableau direct
Une autre méthode efficace consiste à utiliser des opérations directes sur les tableaux :
<code class="language-c#">private static int[] NumbersIn(int value) { if (value == 0) { return new[] { 0 }; // C# 12 集合表达式 } value = Math.Abs(value); var digits = 1 + (int)Math.Log10(value); var buffer = new int[digits]; for (var counter = 0; counter < digits; counter++) { buffer[counter] = value % 10; value /= 10; } Array.Reverse(buffer); return buffer; }</code>
Ces méthodes efficaces offrent un moyen rapide et économe en mémoire de convertir des entiers en tableaux à un chiffre, ce qui en fait un outil précieux dans une variété de tâches de programmation.
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!