Re: [閒聊] 數字翻譯成英文
感謝分享, 你寫得漂亮很多 :)
說老實話我看到題目時沒甚麼頭緒
我的策略是:
1.如果能實作出atom的部分(個位,十位,百位等),
可以累積建構更高層的經驗
2.先前建構的底層可以在建構高層時作為模塊來使用
所以最後寫得比較冗長...
Paul Graham 的說法可見:
http://www.paulgraham.com/hundred.html
http://www.paulgraham.com/avg.html
我的理解是, 令人炫目的複雜度可由一層層底層支撐高層來獲得
每往上一層都有一些部件被模組化, 提供更高階的抽象, 從而獲得更強大的能力
complexity atom
蟻群對環境的適應力 --> 個別螞蟻
大腦與認知世界的同構 --> 神經元
高階語言 --> 機器語言指令集
cPython --> C
※ 引述《darkgerm (黑駿)》之銘言:
: ※ 引述《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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.153.93
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章