Solve 114 through 117.
This commit is contained in:
28
python/e115.py
Normal file
28
python/e115.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from functools import lru_cache
|
||||
|
||||
|
||||
@lru_cache()
|
||||
def block_combinations(row_length: int, min_block_length: int = 3):
|
||||
if row_length == 0:
|
||||
return 1
|
||||
result = 0
|
||||
result = block_combinations(row_length - 1, min_block_length)
|
||||
for new_block in range(min_block_length, row_length):
|
||||
result += block_combinations(row_length - new_block - 1, min_block_length)
|
||||
if row_length >= min_block_length:
|
||||
result += 1
|
||||
return result
|
||||
|
||||
|
||||
def euler_115():
|
||||
for n in range(1000):
|
||||
if block_combinations(n, 50) > 10**6:
|
||||
return n
|
||||
return -1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
solution = euler_115()
|
||||
print("e115.py: " + str(solution))
|
||||
assert(solution == 168)
|
||||
|
||||
Reference in New Issue
Block a user