파이썬 2 ( 384 368 365 348 347 바이트)
def c(s):
s=s[:-6].replace('int','');k=0;d=dict(un=1,doe=2,tre=3,quattuor=4,quin=5,sex=6,septen=7,octo=8,novem=9,b=3,tr=4,quadr=5,qu=6,sext=7,sept=8,oct=9,non=10,dec=11,vig=21,trig=31,quadrag=41,quinquag=51,sexag=61,septuag=71,octog=81,nonag=91,cent=101)
for p in(s!='m')*list(d)*2:
if s.endswith(p):s=s[:-len(p)];k+=3*d[p]
return 10**(k or 6)
( if
라인은 단일 탭으로 들여 쓰기되고 나머지는 단일 공백으로 들여 쓰기됩니다.)
여기에 c('million') == 10**6
있기 때문에 특별한 경우이어야 'novem'
도에 끝납니다 'm'
.
예 :
c('million') == 10**6
c('trillion') == 10**12
c('quattuordecillion') == 10**45
c('novemnonagintillion') == 10**300
c('centillion') == 10**303
350 바이트로 난독 처리 한 Falko에게 감사합니다.
실제로 나는 이것을 람다를 사용하여 하나의 라이너로 다시 작성하려고 시도했습니다. 그건 404 398 390 384 380 379 바이트 :
c=lambda s:(lambda t=[s[:-5].replace('gint',''),0],**d:([t.__setslice__(0,2,[t[0][:-len(p)],t[1]+3*d[p]])for p in 2*list(d)if t[0].endswith(p)],10**t[1])[1])(un=1,doe=2,tre=3,quattuor=4,quin=5,sex=6,septen=7,octo=8,novem=9,mi=2,bi=3,tri=4,quadri=5,qui=6,sexti=7,septi=8,octi=9,noni=10,deci=11,vii=21,trii=31,quadrai=41,quinquai=51,sexai=61,septuai=71,octoi=81,nonai=91,centi=101)