【发布时间】:2014-08-08 23:49:27
【问题描述】:
我已经解决这个问题几个小时了,但我不明白为什么我不能让它正常运行。这种方法的最终结果是在一个数组中有 2 个数字相加时等于 0。这是我的代码:
def two_sums(nums)
i = 0
j = -1
while i < nums.count
num_1 = nums[i]
while j < nums.count
num_2 = nums[j]
if num_1 + num_2 == 0
return "There are 2 numbers that sum to zero & they are #{num_1} and #{num_2}."
else
return "Nothing adds to zero."
end
end
i += 1
j -= 1
end
end
我遇到的问题是,除非数组中的第一个和最后一个数字是同一个数字的正数和负数,否则这将始终返回 false。
例如,如果我有一个 [1, 4, 6, -1, 10] 的数组,它应该返回 true。我确定我的 2 while 语句是造成这种情况的原因,但我想不出办法来解决它。如果有人能指出我正确的方向,那将很有帮助。
【问题讨论】: