Adopted new convention from template
This commit is contained in:
@@ -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()}")
|
|
||||||
|
|||||||
Reference in New Issue
Block a user