Adopted new convention from template

This commit is contained in:
David Doblas Jiménez 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
@ -12,7 +12,7 @@ https://projecteuler.net/problem=17
from utils import timeit
def num2letters(num):
def num_to_letters(num):
nums = {
0: "",
1: "one",
@ -50,18 +50,21 @@ def num2letters(num):
return len(nums[num])
elif num < 100:
tens, units = divmod(num, 10)
return len(nums[tens * 10]) + num2letters(units)
return len(nums[tens * 10]) + num_to_letters(units)
elif num < 1000:
hundreds, rest = divmod(num, 100)
if rest:
return (
num2letters(hundreds) + len(nums[100]) + len("and") + num2letters(rest)
num_to_letters(hundreds)
+ len(nums[100])
+ len("and")
+ num_to_letters(rest)
)
else:
return num2letters(hundreds) + len(nums[100])
return num_to_letters(hundreds) + len(nums[100])
else:
thousands, rest = divmod(num, 1000)
return num2letters(thousands) + len(nums[1000])
thousands, _ = divmod(num, 1000)
return num_to_letters(thousands) + len(nums[1000])
@timeit("Problem 17")
@ -81,10 +84,9 @@ def compute():
n = 1000
letters = 0
for num in range(1, n + 1):
letters += num2letters(num)
letters += num_to_letters(num)
return letters
if __name__ == "__main__":
print(f"Result for Problem 17: {compute()}")
print(f"Result for Problem 17 is {compute()}")