Write a function that takes an array/list of numbers and returns a number.
See the examples and try to guess the pattern:
even_odd([1,2,6,1,6,3,1,9,6]) => 393
even_odd([1,2,3]) => 5
even_odd([0,2,3]) => 3
even_odd([1,0,3]) => 3
even_odd([3,2]) => 6
def even_odd(arr):
count = 0
index = 0
length = len(arr)
while index < length:
for num in range(len(arr)):
if arr[index] % 2 != 0:
count += arr[index]
index += 1
else:
count *= arr[index]
index += 1
return count
所以基本上模式是将前2个数字相乘并添加第三个数字,我将其设置为每个索引值的位置,如果它是第一个数字,我会将其添加到计数中以保持跟踪,然后将其与第二个数字相乘,然后添加第三个数字。我通过了3/4个样本案例,除了一个---> even_odd的第一个([1,2,6,1,6,3,1,9,6])=> 393。我只是想知道我的逻辑有什么缺陷,是否有人有更好的方法来解决这个问题,既高效又干净。
郎朗坤
犯罪嫌疑人X
相关分类