Solves problem 17

This commit is contained in:
Julien Lengrand-Lambert
2012-01-17 14:09:07 +01:00
parent 8dac6fea28
commit 252f13cfb8

35
e_17.py
View File

@@ -16,11 +16,40 @@
British usage.
##---
"""
def fun():
def letters_to_1000():
"""
Returns the number of letters used from 1 to 1000
"""
number_of_hundreds = 9
number_of_ties = 8 * number_of_hundreds # tens are specials
number_of_tens = 9
number_of_thousands = 1
number_of_unities = 10
return 1
ands = ["and"]
numbers = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
tens = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
ties = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" ]
hundreds = ["hundred"]
thousands = ["thousand"]
andl = char_list(ands) * number_of_hundreds * (100 - 1)
numbersl = char_list(numbers) * (number_of_hundreds + 1) * number_of_tens
hunpref = 100 * char_list(numbers) # one hundred, two hundred and so on. . .
tensl = char_list(tens) * (number_of_hundreds + 1)
tiesl = char_list(ties) * (number_of_hundreds + 1) * number_of_unities
hundredsl = char_list(hundreds) * number_of_hundreds * 100
thousandsl = char_list(thousands) * number_of_thousands
onethousand = 3 # for the "one" thousand
return andl + numbersl + tensl + tiesl + hundredsl + thousandsl + hunpref + onethousand
def char_list(list_val):
"""
Returns the total number of characters in a list
"""
return sum([len(val) for val in list_val])
if __name__ == '__main__':
print "Answer : %d" % (fun())
print "Answer : %d" % (letters_to_1000())