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.
|
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__':
|
if __name__ == '__main__':
|
||||||
print "Answer : %d" % (fun())
|
print "Answer : %d" % (letters_to_1000())
|
||||||
|
|||||||
Reference in New Issue
Block a user