정수를 리터럴 표현으로 변환하는 것은 일반적인 프로그래밍 작업입니다. 그러나 대규모 조회 테이블을 사용하지 않고 효율성을 달성하는 것은 어려울 수 있습니다. 이 기사에서는 이러한 한계를 극복하는 한 가지 방법을 살펴봅니다.
해결책의 핵심은 HumanFriendlyInteger
이라는 클래스입니다. 여기에는 다양한 액면가(예: 1, 10 등)를 나타내는 배열 세트와 리터럴 표현을 재귀적으로 작성하는 FriendlyInteger
이라는 메서드가 포함되어 있습니다.
FriendlyInteger
메서드는 재귀적으로 작동하여 리터럴 숫자를 구성합니다. 진행과정은 다음과 같습니다.
n
이 0이면 현재 leftDigits
(가장 왼쪽 숫자를 처리하는 데 사용됨)을 반환합니다. n
이 10보다 작은 경우 단위 배열을 직접 사용하여 리터럴 형식을 검색합니다. 10에서 19 사이의 값에는 10개의 배열을 사용합니다. n
이 20에서 99 사이인 경우 n % 10
(1의 자리)를 재귀적으로 변환하고 앞에 10자리 표현(예: "30")을 추가합니다. n % 100
(십 자리와 일 자리)를 재귀적으로 변환하고 그 앞에 백 자리 표현을 추가합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!