[英]Project Euler #11: Python solution not working
在20×20網格中的任意方向(上,下,左,右或對角線)上四個相鄰數字的最大乘積是多少?
http://projecteuler.net/problem=11
我已經創建了二維元組,即數字中的LIST。
LIST =(((8,2,22,....),(49,49,99,....)...)
這是我的解決方案。 我無法弄清楚邏輯上的缺陷。
(編輯) :我的回答是51267216,但不正確。
# For every number check diagnolly, down and right if the product exceeds max_product.
# Ignore the exception(OutOfBounds) if encountered.
max_product = 0
for i in range(20):
for j in range(20):
temp = 1
try:
for k in range(4):
temp = temp * LIST[i][j+k]
if (temp > max_product):
max_product = temp
except:
pass
temp = 1
try:
for k in range(4):
temp = temp * LIST[i+k][j]
if (temp > max_product):
max_product = temp
except:
pass
temp = 1
try:
for k in range(4):
temp = temp * LIST[i+k][j+k]
if (temp > max_product):
max_product = temp
except:
pass
print max_product
您也許忘記了兩個對角線方向嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.