我有一個解決方案,但不是我想要的。下面的代碼:程序凍結:添加數組元素
def sum(nums)
idx = 0
while idx < nums.length
nums[idx] = idx * nums[idx]
idx += 1
end
print nums
idx2 = 0
idx3 = idx2 + 1
while idx3 < nums.length
result = (nums[idx2].to_i) + (nums[idx3].to_i)
idx2 += 1
end
puts result
end
sum([2,3])
sum([2,3,5])
sum([2,3,5,2])
兩件事情我不明白,在第二while
循環正在發生。首先,如果我使用while idx2 < nums.length
,我會得到一些不尋常的加法(數組總和回到6,13,9)。如果我使用while idx3 < nums.length
,程序不會一直運行。它停在14號線(在第二圈),我必須用Ctrl+C
來中斷它。
我確定我只是不理解這裏發生了什麼,所以我尋求幫助。
我也意識到我可以使用inject
和each
循環爲一個更簡單的總和解決方案(和地圖和procs /塊和其他對象)。我想了解這些工作是如何工作的,而不僅僅是想出一個解決方案。
它有助於說出你的程序是要完成什麼,並給出你想要的輸入和相應輸出的例子...... – 2014-11-09 04:02:23