projecteuler.net解题记录,参考了肥猫的(第11题)

来源:互联网 发布:renatus z网络班 编辑:程序博客网 时间:2024/06/10 14:56
第11题:
What is the greatest product of four numbers on the same straight line in the 20 by 20 grid?

找出20*20方阵中,在同一直线或斜线上相邻4数之积的最大者.
  1. d = []
  2. for i in xrange(20):
  3.     d.append( [ int(j) for j in s.splitlines()[i].split() ] )
  4. print d
  5. first = 0
  6. for i in xrange(20):
  7.     for j in xrange(20):
  8.         try:
  9.             tmp1 = d[i][j]*d[i][j+1]*d[i][j+2]*d[i][j+3]
  10.         except:
  11.             tmp1 = 0
  12.         try:
  13.             tmp2 = d[i][j]*d[i+1][j+1]*d[i+2][j+2]*d[i+3][j+3]
  14.         except:
  15.             tmp2 = 0
  16.         try:
  17.             tmp3 = d[i][j]*d[i+1][j-1]*d[i+2][j-2]*d[i+3][j-3]
  18.         except:
  19.             tmp3 = 0
  20.         try:
  21.             tmp4 = d[i][j]*d[i+1][j]*d[i+2][j]*d[i+3][j]
  22.         except:
  23.             tmp4 = 0
  24.         t = max(tmp1,tmp2,tmp3,tmp4)
  25.         if t > first :
  26.             first = t
  27. print first
先把输入转换成20*20的二维数组,再进行处理.
用try来跳过边界检测,会在执行次数上有一定的浪费.
原创粉丝点击