簡體   English   中英

項目Euler#11:Python解決方案不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM