問題
任意の3つの数値abcの合計を出力するメソッドを作りましょう。
ただし、同じ数が含まれている場合、合計にはカウントされません。
出力例
lone_sum(1, 2, 3) → 6
lone_sum(3, 2, 3) → 2
lone_sum(3, 3, 3) → 0
自分の回答
def lone_sum(a, b, c)
sum = 0
numbers = a, b, c
numbers.each do |num|
if numbers.count(num) == 1
sum += num
end
end
p sum
end
lone_sum(1, 2, 3)
countを用います。numbers.count(num) == 1、つまり配列の中に重複がない場合、その数字をsumに足し合わせていきます。
例えば、3, 2, 3の場合だと、3はnumbers.count(3) = 2 となるので、3はsumに足されず、2だけsumに足されるので、sum = 2となります。