>  기사  >  백엔드 개발  >  . 영어 단어에 대한 정수

. 영어 단어에 대한 정수

PHPz
PHPz원래의
2024-08-08 07:00:12779검색

. Integer to English Words

273. 영어 단어에 대한 정수

하드

주제 : 수학, 문자열, 재귀

음수가 아닌 정수 숫자를 영어 단어 표현으로 변환합니다.

예 1:

  • 입력: 숫자 = 123
  • 출력: "123"

예 2:

  • 입력: 숫자 = 12345
  • 출력: "십이천삼백사십오"

예 3:

  • 입력: 숫자 = 1234567
  • 출력: "일백만이백삼십사천오백육십칠"

제약조건:

  • 0 31 - 1

힌트:

  1. 숫자를 단어 덩어리로 나누는 패턴을 보셨나요? 예를 들어 123 및 123000입니다.
  2. 숫자를 천 단위(3자리)로 그룹화하세요. 1000보다 작은 숫자를 사용하여 해당 덩어리만 단어로 변환하는 도우미 함수를 작성할 수 있습니다.
  3. 예외적인 경우가 많습니다. 좋은 테스트 케이스에는 어떤 것이 있나요? 코드가 0과 같은 입력으로 작동합니까? 아니면 1000010? (중간 청크는 0이므로 인쇄하면 안 됩니다)

해결책:

이 문제를 해결하려면 다음 단계를 따르세요.

  1. 숫자에 대한 단어 정의: 한 자리, 십 단위, 십 ​​단위, 천 단위 그룹을 나타내는 단어에 대한 배열이 필요합니다.

  2. 도우미 함수 만들기: 이 함수는 1000보다 작은 숫자를 처리하여 영어 단어로 변환합니다.

  3. 재귀 함수: 기본 함수는 숫자의 청크를 재귀적으로 처리하여 적절한 1000개 그룹 레이블(예: 천, 백만, 십억)을 추가합니다.

  4. Edge Case: 중간 청크가 0인 0 및 숫자와 같은 Edge Case를 처리합니다.

이 솔루션을 PHP로 구현해 보겠습니다. 273. 영어 단어의 정수

<?php
// Test cases
echo numberToWords(123) . "\n"; // Output: "One Hundred Twenty Three"
echo numberToWords(12345) . "\n"; // Output: "Twelve Thousand Three Hundred Forty Five"
echo numberToWords(1234567) . "\n"; // Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
?>

설명:

  1. 주요 기능(numberToWords):

    • 입력된 숫자가 0인지 확인하고 "0"을 반환합니다.
    • 천개 그룹화에 대한 레이블을 사용하여 천개 배열을 초기화합니다.
    • 도우미 기능을 사용하여 각 청크를 단어로 변환하여 숫자를 수천 개의 청크로 반복적으로 처리합니다.
    • 각 청크에 대한 단어를 적절한 천 그룹 레이블과 결합하여 최종 결과 문자열을 구성합니다.
  2. 도우미 기능(도우미):

    • 20 미만의 숫자와 10의 배수에 대해 사전 정의된 배열을 사용합니다.
    • 1000보다 작은 숫자에 대한 영어 단어를 재귀적으로 구성합니다.
      • 20보다 작은 숫자의 경우 해당 단어를 직접 반환합니다.
      • 100보다 작은 숫자의 경우 십의 자리 단어와 단위 자리의 재귀 호출 결과를 결합합니다.
      • 100번째 이상의 숫자의 경우 백 자리에 대한 단어와 나머지에 대한 재귀 호출 결과를 결합합니다.

이 솔루션은 제약 조건과 극단적인 경우를 효과적으로 처리하여 주어진 범위 내의 모든 숫자에 대해 올바른 영어 단어 표현을 제공합니다.

연락처 링크

이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!

이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.

  • 링크드인
  • 깃허브

위 내용은 . 영어 단어에 대한 정수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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