Improve solutions for problems 18, 24 and 25

This commit is contained in:
2019-09-23 20:13:32 +02:00
parent 593d52144d
commit b4c85f8f4a
7 changed files with 187 additions and 99 deletions

View File

@ -1,21 +1,9 @@
#!/usr/bin/python3
from timeit import default_timer
def sum_triangle(triang, n, i, j, sum_):
global max_
if i == n:
if sum_ > max_:
max_ = sum_
return max_
sum_triangle(triang, n, i+1, j, sum_+triang[i][j])
sum_triangle(triang, n, i+1, j+1, sum_+triang[i][j])
from projecteuler import find_max_path
def main():
global max_
start = default_timer()
try:
@ -36,8 +24,7 @@ def main():
for i in range(l):
triang[i] = list(map(int, triang[i]))
max_ = 0
sum_triangle(triang, 15, 0, 0, 0)
max_ = find_max_path(triang, 15)
end = default_timer()

View File

@ -80,6 +80,16 @@ def count_divisors(n):
return count
def find_max_path(triang, n):
for i in range(n-2, -1, -1):
for j in range(0, i+1):
if triang[i+1][j] > triang[i+1][j+1]:
triang[i][j] = triang[i][j] + triang[i+1][j]
else:
triang[i][j] = triang[i][j] + triang[i+1][j+1]
return triang[0][0]
def is_pandigital(value, n):
i = 0
digits = zeros(n + 1, int)