Python编程中的英语单词整数
为了解决这个问题,我们将遵循以下步骤-
定义一些列表,例如less_than_20,它将保存从1到19的所有单词
另一个数组,例如数十个,可容纳数十个,二十个,三十个,以此类推,最多可容纳九十
数千个数组,可容纳数千,百万和十亿个
定义一个名为helper()的函数,这将花费n
如果n为0,则返回空白字符串
否则,当n<20时,返回less_than_20[n]+空白
否则,当n<100时,返回tens[n/10]+空格+helper(nmod10)
否则返回less_than_20[n/100]+“一百”+助手(nmod100)
在主要方法中,执行以下操作
如果num为0,则返回“零”
ans:=空字符串,i:=0
而num>0
ans:=helper(nummod1000)+千[i]+空格+ans
如果nummod1000不为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
热门推荐
10 给宝贝开学祝福语简短
11 考试祝福语日文简短版
12 送个姐妹生日祝福语简短
13 离别简短的祝福语大全
14 永远漂亮祝福语女生简短
15 合字的祝福语简短
16 除夕的拜年祝福语简短
17 节日祝福语幽默简短的
18 圣诞祝福语简短文字