ホームページ > バックエンド開発 > C++ > 整数をその数字の配列に効率的に変換するにはどうすればよいですか?

整数をその数字の配列に効率的に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-12 16:10:42
オリジナル
237 人が閲覧しました

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

整数から数値配列への効率的な変換方法

整数を 1 桁の数値の配列に変換することは、プログラミングにおける一般的なタスクです。文字列の変換と反復を使用する従来のアプローチはシンプルですが、数値が大きい場合は非効率的です。ここでは効率的な変換方法をいくつか紹介します。

再帰メソッド

1 つの方法は、再帰を使用して整数をより小さな部分に分割することです。次の 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>
ログイン後にコピー

直接配列方式

もう 1 つの効率的な方法は、直接配列操作を使用することです。

<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>
ログイン後にコピー

これらの効率的なメソッドは、整数を 1 桁の配列に変換するための高速かつメモリ効率の高い方法を提供し、さまざまなプログラミング タスクで貴重なツールとなります。

以上が整数をその数字の配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート