Project euler - 67 - 我不知道为什么我的代码给出了错误的答案

时间:2018-06-09 14:36:24

标签: python

问题是这个https://projecteuler.net/problem=67

我不明白为什么这会给出错误答案-6580,应该是7273。

想法是查看下一行中的相邻数字 并且看到哪个更高并且总结那一个。所以我将位置j中的数字与位置j + 1中的数字进行比较。 如果它们相等则会进入下一行并比较接下来的3个数字,但它不会遇到2个相同的数字,所以我删除了处理它的代码。

数据是一个列表,其中每个位置都有一个列表,其中包含三角形的每一行

data = open('triangulo.txt', 'r')
data = data.readlines()
j = 0

soma = int(data[0].strip())

for i in range(1,100):
    if int(data[i].strip().split()[j])==int(data[i].strip().split([j+1]):
        print('fodfsf') #this is just to see if there are any numbers equal to each other
    if int(data[i].strip().split()[j])>int(data[i].strip().split()[j+1]):
        soma = soma + int(data[i].strip().split()[j])
    else:
        soma = soma + int(data[i].strip().split()[j+1])
        j = j + 1


print(soma)

1 个答案:

答案 0 :(得分:1)

考虑以下三角形。

         1
      1     2
   9     1     1
9     1     1     1

对于这个三角形,你的算法认为最大路径是什么?

你需要找到一种不同的方法来解决这个问题,但这只是Project Euler问题的一半。