Black formatting

This commit is contained in:
David Doblas Jiménez 2021-10-31 15:36:19 +01:00
parent c99257d48f
commit 36c1ff20a4

View File

@ -11,14 +11,40 @@ https://projecteuler.net/problem=17
from utils import timeit
def num2letters(num):
nums = {0: '', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five',
6: 'six', 7: 'seven', 8: 'eight', 9: 'nine', 10: 'ten',
11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'fourteen',
15: 'fifteen', 16: 'sixteen', 17: 'seventeen', 18: 'eighteen',
19: 'nineteen', 20: 'twenty', 30: 'thirty', 40: 'forty',
50: 'fifty', 60: 'sixty', 70: 'seventy', 80: 'eighty',
90: 'ninety', 100: 'hundred', 1000: 'thousand'}
nums = {
0: "",
1: "one",
2: "two",
3: "three",
4: "four",
5: "five",
6: "six",
7: "seven",
8: "eight",
9: "nine",
10: "ten",
11: "eleven",
12: "twelve",
13: "thirteen",
14: "fourteen",
15: "fifteen",
16: "sixteen",
17: "seventeen",
18: "eighteen",
19: "nineteen",
20: "twenty",
30: "thirty",
40: "forty",
50: "fifty",
60: "sixty",
70: "seventy",
80: "eighty",
90: "ninety",
100: "hundred",
1000: "thousand",
}
if num <= 20:
return len(nums[num])
@ -28,14 +54,16 @@ def num2letters(num):
elif num < 1000:
hundreds, rest = divmod(num, 100)
if rest:
return num2letters(hundreds) + len(nums[100]) + len('and') +\
num2letters(rest)
return (
num2letters(hundreds) + len(nums[100]) + len("and") + num2letters(rest)
)
else:
return num2letters(hundreds) + len(nums[100])
else:
thousands, rest = divmod(num, 1000)
return num2letters(thousands) + len(nums[1000])
@timeit("Problem 17")
def compute():
"""
@ -59,4 +87,4 @@ def compute():
if __name__ == "__main__":
print(f"Result for Problem 17: {compute()}")
print(f"Result for Problem 17: {compute()}")