Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Tatasusunan Digitnya?

Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Tatasusunan Digitnya?

Barbara Streisand
Lepaskan: 2025-01-12 16:10:42
asal
240 orang telah melayarinya

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

Kaedah penukaran integer kepada tatasusunan berangka yang cekap

Menukar integer kepada susunan nombor satu digitnya ialah tugas biasa dalam pengaturcaraan. Walaupun pendekatan tradisional menggunakan penukaran rentetan dan lelaran adalah mudah, ia tidak cekap untuk bilangan yang besar. Berikut ialah beberapa kaedah penukaran yang cekap.

Kaedah rekursif

Salah satu cara ialah menggunakan rekursi untuk memecahkan integer kepada bahagian yang lebih kecil. Kod C# berikut menunjukkan pendekatan ini:

<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>
Salin selepas log masuk

Kaedah tindanan bukan rekursif

Versi bukan rekursif menggunakan tindanan juga boleh dilaksanakan:

<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>
Salin selepas log masuk

Kaedah tatasusunan langsung

Kaedah lain yang cekap ialah menggunakan operasi tatasusunan langsung:

<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>
Salin selepas log masuk

Kaedah cekap ini menyediakan cara yang pantas dan cekap memori untuk menukar integer kepada tatasusunan satu digit, menjadikannya alat yang berharga dalam pelbagai tugas pengaturcaraan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Tatasusunan Digitnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan