mirror of
https://github.com/jlengrand/project_euler.git
synced 2026-03-10 08:41:20 +00:00
Solves problem 17
This commit is contained in:
35
e_17.py
35
e_17.py
@@ -16,11 +16,40 @@
|
||||
British usage.
|
||||
##---
|
||||
"""
|
||||
def fun():
|
||||
def letters_to_1000():
|
||||
"""
|
||||
Returns the number of letters used from 1 to 1000
|
||||
"""
|
||||
|
||||
return 1
|
||||
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
|
||||
|
||||
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())
|
||||
|
||||
Reference in New Issue
Block a user