作者darkgerm (黑骏)
看板Python
标题Re: [闲聊] 数字翻译成英文
时间Fri Apr 13 21:40:53 2012
※ 引述《beatitude (...)》之铭言:
: 前阵子看到一个公司的面试考题: http://i.imgur.com/ETTIS.png
: 觉得有趣就做了一下
: 看到比较抽象的函数建构在比较基础的函数之上,
: 最终得到可以翻译任意长度数字的能力,
: 还满震惊的...
: 让我想到 Paul Graham 谈论 Lisp 时的论点
什麽论点?可以分享一下吗>"<
另外你的程式有小 bug 喔
input output
0 ''
100 'one hundred, '
我自己也写了一个版本,希望大家也可以帮我测测看有没有 bug
也希望能抛砖引玉,看到其他更多更好的做法
number = ['','one','two','three','four','five',
'six','seven','eight','nine','ten',
'eleven','twelve','thirteen','fourteen','fifteen',
'sixteen','seventeen','eighteen','nineteen']
number10 = ['','ten','twenty','thirty','forty','fifty',
'sixty','seventy','eighty','ninty']
def convert(n): # -> string
if(n==0): return 'zero'
result = ''
if n>=1000:
result += convert(n/1000) + ' thousand, '
n %= 1000
if n>=100:
result += number[n/100] + ' hundred, '
n %= 100
if n>=20:
result += number10[n/10] + ' '
n %= 10
result += number[n]
# delete the trail ',' and ' '
if result[-1] == ' ':
result = result[:-1]
if result[-1] == ',':
result = result[:-1]
return result
--
光明 的背後 是 黑暗
黑暗 的背後 还是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.230.123