我想做的是创建一个新的数组,将一个数组作为输入,并在其中进行迭代。新数组中的每一项都是上一项和下一项迭代的乘法结果。
例如,我的代码是这样的。
Array input: [1, 2, 3, 4, 5, 6]
Array_final: [2, 3, 8, 15, 24, 30]
first item: 2*1 (because there's no previous item)
second item: 3*1
third item: 4*2
forth item: 5*3
fith item: 6*4
sixth item: 6*5 (we use the current item because we don't have a next one)
这是我的代码,我不明白为什么我一直得到array_final = [0, 0, 0, 0, 0, 0, 0]。
class Arrays
def self.multply(array)
array_final = []
last_index = array.length-1
array.each_with_index do |num, i|
if i == 0
array_final.push (num[i+1])
elsif i == last_index
array_final.push (num*num[i-1])
else
array_final.push(num[i+1]*num[i-1])
end
end
return array_final
end
end
你使用的是 num
作为一个数组,当它是一个元素时。
我想你的意思是。
array.each_with_index do |num, i|
if i == 0
array_final.push (array[i+1])
elsif i == last_index
array_final.push (num*array[i-1])
else
array_final.push(array[i+1]*array[i-1])
end
end