python中的英语单词_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> 0ans:= helper(num mod 1000)+千[i] +空格+ ans

num:= num / 1000

如果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 

return Solution.less_than_20[n] + " "

elif n 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值