正在做 CheckIO 练习,但卡在了这里。我需要设计一个函数,它会找到具有偶数索引(第 0、2、4...)的元素的总和,然后将这个求和的数字与数组的最后一个元素相乘。输入是一个数组,输出是一个数字。哦,对于空数组,结果必须为零。
def checkio(array):
sum = 0
if len(array) == 0:
return 0
else:
for i in array:
if array.index(i) % 2 == 0:
sum = sum + i
final = sum*(array[len(array)-1])
return final
例如,数组 [-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55, -24,84,49,-65,41],这个函数在它应该给出 1968 时返回 -1476。
请您参考如下方法:
据我所知,问题在于您假设数组中的所有数字都是唯一的。例如,假设我有以下数组:
[0,33,33,22,22]
显然,在此数组中,您需要第 3 个和第 5 个元素(索引 2 和 4)。
然而,使用您当前的代码,这永远不会发生,您最终的总和将为 0。这是因为代码:
array.index(i)
找到匹配i的第一个元素,这将是第2个和第4个元素(索引1和3),它们是奇数索引,因此不会被添加。
