정수를 배열로 효율적으로 추출하기: 간결한 가이드
질문:
정수 i가 주어지면 이를 개별 숫자가 포함된 배열로 변환하는 효율적인 방법이 있습니까? 예를 들어 ToString() 및 문자 반복과 같은 중간 작업 없이 i = 987654321을 [9, 8, 7, 6, 5, 4, 3, 2, 1]로 변환하시겠습니까?
정답:
스택을 이용한 재귀적 솔루션:
<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>
for 루프를 사용하는 또 다른 솔루션:
<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) { // 处理 value 为 0 或负数的特殊情况 if (value == 0) { return new int[] { 0 }; } value = Math.Abs(value); // 确定数字位数 var digits = 1 + (int)Math.Log10(value); // 预分配数组 var buffer = new int[digits]; // 迭代并填充数组 for (var counter = 0; counter < digits; counter++) { buffer[digits - 1 - counter] = value % 10; value /= 10; } return buffer; }</code>
이러한 솔루션은 정수에서 숫자를 추출하는 효율적이고 간결한 방법을 제공하여 개별 숫자 배열로 원활하게 변환할 수 있습니다.
위 내용은 정수에서 배열로 숫자를 효율적으로 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!