Adopted new convention from template

This commit is contained in:
2022-09-26 20:42:26 +02:00
parent 5936367b4d
commit 963f6ad3b0

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python3 #!/usr/bin/env python
""" """
Created on 13 Jan 2018 Created on 13 Jan 2018
@@ -12,7 +12,7 @@ https://projecteuler.net/problem=17
from utils import timeit from utils import timeit
def num2letters(num): def num_to_letters(num):
nums = { nums = {
0: "", 0: "",
1: "one", 1: "one",
@@ -50,18 +50,21 @@ def num2letters(num):
return len(nums[num]) return len(nums[num])
elif num < 100: elif num < 100:
tens, units = divmod(num, 10) tens, units = divmod(num, 10)
return len(nums[tens * 10]) + num2letters(units) return len(nums[tens * 10]) + num_to_letters(units)
elif num < 1000: elif num < 1000:
hundreds, rest = divmod(num, 100) hundreds, rest = divmod(num, 100)
if rest: if rest:
return ( return (
num2letters(hundreds) + len(nums[100]) + len("and") + num2letters(rest) num_to_letters(hundreds)
+ len(nums[100])
+ len("and")
+ num_to_letters(rest)
) )
else: else:
return num2letters(hundreds) + len(nums[100]) return num_to_letters(hundreds) + len(nums[100])
else: else:
thousands, rest = divmod(num, 1000) thousands, _ = divmod(num, 1000)
return num2letters(thousands) + len(nums[1000]) return num_to_letters(thousands) + len(nums[1000])
@timeit("Problem 17") @timeit("Problem 17")
@@ -81,10 +84,9 @@ def compute():
n = 1000 n = 1000
letters = 0 letters = 0
for num in range(1, n + 1): for num in range(1, n + 1):
letters += num2letters(num) letters += num_to_letters(num)
return letters return letters
if __name__ == "__main__": if __name__ == "__main__":
print(f"Result for Problem 17 is {compute()}")
print(f"Result for Problem 17: {compute()}")