將數字分成三個數字一小組的list
p.s.
**還需要改進;
以後的**都會寫備註;
以下是python 的源**:
import numpy
import math
class
solution
(object):
defnumbertowords
(self, num)
:"""
將整個數字分成三個一小組的list
:type num: int
:rtype: str
"""num0=num ##用來求每個小組中的元素,消耗元素
num1=num ##用來求一組數可以組成幾個三位小組,消耗元素
trib_num=
0##小組數
for i in
range(4
):##判斷有幾個小組
if num1>0:
trib_num+=
1 num1=
int(num1/
1000
)
trible=
##小組內的具體元素
num_str=
##最後輸出的字串
if num==0:
num_str=
'zero'
else
:for i in
range
(trib_num)
:##小組內的具體元素
1000
) num0=
int(num0/
1000
)for i in
range
(trib_num)
:##小組內迴圈
x=trible[trib_num-
1-i]
hund_num=
int(x/
100)
##百位
decm_num=
int(x%
100/10)
##十位
sing_num=x%
10##個位
## 此位是否都為零
if hund_num==
0and decm_num==
0and sing_num==0:
pass
## 不為零
else
:## 百位有數字輸出
if hund_num>0:
y=sing(hund_num)
' ')
'hundred'
)## 如果百位後有元素的話需要加上空格
if decm_num>
0or sing_num>
0or i' ')
## 十位有大於1數字輸出
if decm_num>1:
y=decm(decm_num)
## 有個位的話需要加上空格和個位
if sing_num>0:
' ')
y=sing(sing_num)
## 如果個位後還有元素的話需要加空格
if i' ')
## 如果十位的元素為1
elif decm_num==1:
y=tens(sing_num)
## 如果十位後還有元素
if i' ')
## 只有乙個個位
elif sing_num>0:
y=sing(sing_num)
##如果個位後還有元素
if i' ')
## 對小組的位進行定位
y=thou(trib_num-
1-i)
## 如果小組後面還有元素則加空格
x=pow(
1000
,(trib_num-
1-i))if
(num%x)
>0:
' ')
## 拼接字串
str0=
'' str0=str0.join(num_str)
## return 2000%1000
return str0
defthou
(thou_num)
: thou_str=
''if thou_num==0:
thou_str=
''if thou_num==1:
thou_str=
'thousand'
if thou_num==2:
thou_str=
'million'
if thou_num==3:
thou_str=
'billion'
return thou_str
defdecm
(decm_num)
: decm_str=
''if decm_num==2:
decm_str=
'twenty'
elif decm_num==3:
decm_str=
'thirty'
elif decm_num==4:
decm_str=
'forty'
elif decm_num==5:
decm_str=
'fifty'
elif decm_num==6:
decm_str=
'sixty'
elif decm_num==7:
decm_str=
'seventy'
elif decm_num==8:
decm_str=
'eighty'
elif decm_num==9:
decm_str=
'ninety'
return decm_str
deftens
(tens_num)
: tens_str=
''if tens_num==0:
tens_str=
'ten'
if tens_num==1:
tens_str=
'eleven'
if tens_num==2:
tens_str=
'twelve'
if tens_num==3:
tens_str=
'thirteen'
if tens_num==4:
tens_str=
'fourteen'
if tens_num==5:
tens_str=
'fifteen'
if tens_num==6:
tens_str=
'sixteen'
if tens_num==7:
tens_str=
'seventeen'
if tens_num==8:
tens_str=
'eighteen'
if tens_num==9:
tens_str=
'nineteen'
return tens_str
defsing
(sing_num)
: sing_str=
''if sing_num==1:
sing_str=
'one'
if sing_num==2:
sing_str=
'two'
if sing_num==3:
sing_str=
'three'
if sing_num==4:
sing_str=
'four'
if sing_num==5:
sing_str=
'five'
if sing_num==6:
sing_str=
'six'
if sing_num==7:
sing_str=
'seven'
if sing_num==8:
sing_str=
'eight'
if sing_num==9:
sing_str=
'nine'
return sing_str
num =
1000010
output=solution(
).numbertowords(num)
print
(output)
leetcode字串轉換整數
請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組...
LeetCode 字串轉換整數
題目描述 請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連...
leetcode 字串轉換整數 atoi
請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...