Python编程中的英语单词整数

假设我们有一个数字。数字可以是0到231 – 1之间的任何数字。我们必须将数字转换为单词。因此,如果数字是512,那么结果将是512。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一些列表,例如less_than_20,它将保存从1到19的所有单词

  • 另一个数组,例如数十个,可容纳数十个,二十个,三十个,以此类推,最多可容纳九十

  • 数千个数组,可容纳数千,百万和十亿个

  • 定义一个名为helper()的函数,这将花费n

  • 如果n为0,则返回空白字符串

  • 否则,当n <20时,返回less_than_20 [n] +空白

  • 否则,当n <100时,返回tens [n / 10] +空格+ helper(n mod 10)

  • 否则返回less_than_20 [n / 100] +“一百” +助手(n mod 100)

  • 在主要方法中,执行以下操作

  • 如果num为0,则返回“零”

  • ans:=空字符串,i:= 0

  • 而num> 0

    • ans:= helper(num mod 1000)+千[i] +空格+ ans


    • 如果num mod 1000不为0,则

    • 返回ans

    让我们看下面的实现以更好地理解-

    示例

    class Solution(object):
    less_than_20 = ["", "One", "Two", "Three", "Four", "Five", "Six",
    "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen",
    "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen",
    "Nineteen"]
       tens = ["","Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty",
    "Seventy", "Eighty", "Ninety"]
    thousands = ["", "Thousand", "Million", "Billion"]
       def numberToWords(self, num):
          if num == 0:
             return "Zero"
          ans = ""
          i = 0
          while num > 0:
             if num % 1000 != 0:
                ans = self.helper(num % 1000) + Solution.thousands[i] + " " + ans
                i += 1
                num //= 1000
             return ans.strip()
       def helper(self, n):
          if n == 0:
             return ""
          elif n < 20:
             return Solution.less_than_20[n] + " "
          elif n < 100:
             return Solution.tens[n//10] + " " + self.helper(n % 10)
          else:
             return Solution.less_than_20[n // 100] + " Hundred " +
    self.helper(n % 100)
    ob = Solution()
    print(ob.numberToWords(512))
    print(ob.numberToWords(7835271))

    输入值

    512
    7835271

    输出结果

    Five Hundred Twelve
    Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One