在20×20网格中,四个相邻数在任意方向(上、下、左、右、对角)的最大乘积是什么?
http://projecteuler.net/problem=11
我从数字中创建了二维元组列表。
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
发布于 2012-01-26 04:43:54
你是不是忘记了有两个对角线方向?
https://stackoverflow.com/questions/9014001
复制相似问题