首頁 > 後端開發 > C++ > 如何有效地將整數轉換為其數字數組?

如何有效地將整數轉換為其數字數組?

Barbara Streisand
發布: 2025-01-12 16:10:42
原創
238 人瀏覽過

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

高效整數到數字數組轉換方法

將整數轉換為其個位數字數組在程式設計中是一項常見任務。雖然使用字串轉換和迭代的傳統方法很簡單,但對於大數字來說效率低。以下是一些高效率的轉換方法。

遞歸方法

一種方法是使用遞歸將整數分解成更小的部分。以下C#程式碼展示了這個方法:

<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>
登入後複製

非遞歸堆疊方法

也可以實作使用堆疊的非遞歸版本:

<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>
登入後複製

直接數組方法

另一種高效率的方法是使用直接的陣列運算:

<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>
登入後複製

這些高效的方法提供了快速且內存高效的將整數轉換為個位數字數組的方法,使其成為各種編程任務中的寶貴工具。

以上是如何有效地將整數轉換為其數字數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板