Heim >Backend-Entwicklung >C++ >Wie kann ich eine ganze Zahl effizient in ein Array ihrer Ziffern umwandeln?
Effiziente Methode zur Konvertierung von Ganzzahlen in numerische Arrays
Das Konvertieren einer Ganzzahl in ein Array aus einstelligen Zahlen ist eine häufige Aufgabe in der Programmierung. Während der herkömmliche Ansatz mit String-Konvertierung und Iteration einfach ist, ist er für große Zahlen ineffizient. Hier sind einige effiziente Konvertierungsmethoden.
Rekursive Methode
Eine Möglichkeit besteht darin, die Ganzzahl mithilfe der Rekursion in kleinere Teile zu zerlegen. Der folgende C#-Code demonstriert diesen Ansatz:
<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>
Nicht rekursive Stapelmethode
Eine nicht rekursive Version, die den Stack verwendet, kann ebenfalls implementiert werden:
<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>
Direkte Array-Methode
Eine weitere effiziente Methode ist die Verwendung direkter Array-Operationen:
<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>
Diese effizienten Methoden bieten eine schnelle und speichereffiziente Möglichkeit, Ganzzahlen in einstellige Arrays umzuwandeln, was sie zu einem wertvollen Werkzeug für eine Vielzahl von Programmieraufgaben macht.
Das obige ist der detaillierte Inhalt vonWie kann ich eine ganze Zahl effizient in ein Array ihrer Ziffern umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!