>백엔드 개발 >C++ >C#에서 정수를 표기된 숫자로 효율적으로 변환하려면 어떻게 해야 합니까?

C#에서 정수를 표기된 숫자로 효율적으로 변환하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-12 19:56:44375검색

How Can We Efficiently Convert Integers to Their Written Number Equivalents in C#?

효율적인 정수-영숫자 변환

정수를 리터럴 표현으로 변환하는 것은 일반적인 프로그래밍 작업입니다. 그러나 대규모 조회 테이블을 사용하지 않고 효율성을 달성하는 것은 어려울 수 있습니다. 이 기사에서는 이러한 한계를 극복하는 한 가지 방법을 살펴봅니다.

HumanFriendlyInteger 클래스

해결책의 핵심은 HumanFriendlyInteger이라는 클래스입니다. 여기에는 다양한 액면가(예: 1, 10 등)를 나타내는 배열 세트와 리터럴 표현을 재귀적으로 작성하는 FriendlyInteger이라는 메서드가 포함되어 있습니다.

리터럴 숫자를 재귀적으로 작성

FriendlyInteger 메서드는 재귀적으로 작동하여 리터럴 숫자를 구성합니다. 진행과정은 다음과 같습니다.

  1. 기본 사례: 입력 n이 0이면 현재 leftDigits(가장 왼쪽 숫자를 처리하는 데 사용됨)을 반환합니다.
  2. 단위 및 10: n이 10보다 작은 경우 단위 배열을 직접 사용하여 리터럴 형식을 검색합니다. 10에서 19 사이의 값에는 10개의 배열을 사용합니다.
  3. 십 자리: n이 20에서 99 사이인 경우 n % 10(1의 자리)를 재귀적으로 변환하고 앞에 10자리 표현(예: "30")을 추가합니다.
  4. 백 자리: 는 십 자리 단계와 유사하며 n % 100(십 자리와 일 자리)를 재귀적으로 변환하고 그 앞에 백 자리 표현을 추가합니다.
  5. 천 단위 이상: n % 1000을 재귀적으로 변환하고 적절한 천 번째 그룹 표현(예: "천", "백만")을 추가합니다. n % 1000이 0이면 재귀가 종료됩니다.

도우미 방법

IntegerToWritten 메서드는 음수와 0의 특수한 경우를 처리하고 "0"을 반환하는 래퍼 함수입니다.

다음 사용 예를 고려하세요.

<code class="language-csharp">using HumanFriendlyInteger;

public class Program
{
    public static void Main()
    {
        int number = 21;
        string writtenNumber = IntegerToWritten(number);

        Console.WriteLine($"{number} 的文字形式:{writtenNumber}");
    }
}</code>

이 코드는 다음을 출력합니다:

<code>21 的文字形式:Twenty One</code>

결론

이 재귀 접근 방식은 큰 조회 테이블에 의존하지 않고 정수를 리터럴 형식으로 변환하는 효율적인 방법을 제공합니다. 이 접근 방식은 문제를 더 작은 부분으로 나누어 최소한의 오버헤드로 원하는 결과를 얻습니다.

위 내용은 C#에서 정수를 표기된 숫자로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.