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

第11题:

找出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来跳过边界检测,会在执行次数上有一定的浪费.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值