[Ruby]dorill75

プログラミング

問題

任意の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となります。

タイトルとURLをコピーしました