/home/user> python seventeen.py | more
21124
/home/user> cat seventeen.py
# dict which we will map over to get number of letters
numbers = {}
# create dict for 0 through 999
for i in range(0,10):
for j in range(0,10):
for k in range(0,10):
numbers[i*100+j*10+k] = [i,j,k]
# delete zero, since it is not included in statement of problem.
del numbers[0]
# Create lookup table for converting first digit 1 to 9 to words
hundredsLookup = {}
hundredsLookup[1] = "onehundredand"
hundredsLookup[2] = "twohundredand"
hundredsLookup[3] = "threehundredand"
hundredsLookup[4] = "fourhundredand"
hundredsLookup[5] = "fivehundredand"
hundredsLookup[6] = "sixhundredand"
hundredsLookup[7] = "sevenhundredand"
hundredsLookup[8] = "eighthundredand"
hundredsLookup[9] = "ninehundredand"
hundredsLookup[0] = ''
for n in numbers.keys():
numbers[n][0] = hundredsLookup[numbers[n][0]]
# remove 'and' from even hundreds.
numbers[100][0], numbers[100][1], numbers[100][2]= "onehundred", '',''
numbers[200][0], numbers[200][1], numbers[300][2]= "twohundred", '',''
numbers[300][0], numbers[300][1], numbers[300][2]= "threehundred", '',''
numbers[400][0], numbers[400][1], numbers[400][2]= "fourhundred", '',''
numbers[500][0], numbers[500][1], numbers[500][2]= "fivehundred", '',''
numbers[600][0], numbers[600][1], numbers[600][2]= "sixhundred", '',''
numbers[700][0], numbers[700][1], numbers[700][2]= "sevenhundred", '',''
numbers[800][0], numbers[800][1], numbers[800][2]= "eighthundred", '',''
numbers[900][0], numbers[900][1], numbers[900][2]= "ninehundred", '',''
#create a lookup table for converting teens to words
teensLookup = {}
teensLookup[0] = 'ten'
teensLookup[1] = 'eleven'
teensLookup[2] = 'twelve'
teensLookup[3] = 'thirteen'
teensLookup[4] = 'fourteen'
teensLookup[5] = 'fifteen'
teensLookup[6] = 'sixteen'
teensLookup[7] = 'seventeen'
teensLookup[8] = 'eighteen'
teensLookup[9] = 'nineteen'
for n in range(1,1000):
if numbers[n][1] == 1:
numbers[n][1] = ''
numbers[n][2] = teensLookup[numbers[n][2]]
elif numbers[n][1] == 0:
numbers[n][1] = ''
elif numbers[n][1] == 2:
numbers[n][1] = 'twenty'
elif numbers[n][1] == 3:
numbers[n][1] = 'thirty'
elif numbers[n][1] == 4:
numbers[n][1] = 'forty'
elif numbers[n][1] == 5:
numbers[n][1] = 'fifty'
elif numbers[n][1] == 6:
numbers[n][1] = 'sixty'
elif numbers[n][1] == 7:
numbers[n][1] = 'seventy'
elif numbers[n][1] == 8:
numbers[n][1] = 'eighty'
elif numbers[n][1] == 9:
numbers[n][1] = 'ninety'
if numbers[n][2] == 0:
numbers[n][2] = ''
elif numbers[n][2] == 1:
numbers[n][2] = 'one'
elif numbers[n][2] == 2:
numbers[n][2] = 'two'
elif numbers[n][2] == 3:
numbers [n][2] = 'three'
elif numbers[n][2] == 4:
numbers[n][2] = 'four'
elif numbers[n][2] == 5:
numbers[n][2] = 'five'
elif numbers[n][2] == 6:
numbers[n][2] = 'six'
elif numbers[n][2] == 7:
numbers[n][2] = 'seven'
elif numbers[n][2] == 8:
numbers[n][2] = 'eight'
elif numbers[n][2] == 9:
numbers[n][2] = 'nine'
results = [numbers[n][0] + numbers[n][1] + numbers[n][2] for n in numbers.keys()] + ['onethousand']
counts = [len(s) for s in results]
print sum(counts)
Thursday, September 11, 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment