> 백엔드 개발 > C++ > 정수에서 배열로 숫자를 효율적으로 추출하는 방법은 무엇입니까?

정수에서 배열로 숫자를 효율적으로 추출하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-12 16:22:43
원래의
906명이 탐색했습니다.

How to Efficiently Extract Digits from an Integer into an Array?

정수를 배열로 효율적으로 추출하기: 간결한 가이드

질문:

정수 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿