我在coderbytes上经历了一个问题,但卡住了。我应该编写一个接收数组的方法,并检查数组中任何数字组合的总和是否等于数组中的最大数。该数组不会为空,不包含所有相同的元素,并且可能包含负数。这是我写的。
def ArrayAdditionI(arr)
if arr.combination(2).any? {|x,y| x + y == arr.max}
return "true"
else
return "false"
end
end
唯一的问题是我想在(2..arr.length)
中使用每个数字迭代组合输入。任何人都有一个简单的方法来做到这一点。
此外,arr.combination(2).any? {|x,y| x + y == arr.max}
本身在满足上述条件时返回true,这使我认为可能不需要if
。任何人都知道如果没有if
语句,方法会返回true吗?