Maison > développement back-end > C++ > Comment puis-je convertir efficacement un entier en un tableau de ses chiffres ?

Comment puis-je convertir efficacement un entier en un tableau de ses chiffres ?

Barbara Streisand
Libérer: 2025-01-12 16:10:42
original
240 Les gens l'ont consulté

How Can I Efficiently Convert an Integer into an Array of its Digits?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal