今日も学んだことを忘れない為にメモします。
プログラムの内容
・配列に格納された数値の合計値を算出する
・ただし、同じ数値が2つ以上含まれている場合、その数値は合計する要素に含めない
記述内容
def lone_sum(ary)
uniq_nums = []
ary.each do |num|
count = 0
ary.each do |i|
if num == i
count += 1
end
end
if count < 2
uniq_nums << num
end
end
sum = 0
uniq_nums.each do |unique_num|
sum += unique_num
end
puts sum
end
lone_sum([1, 2, 3])
lone_sum([3, 2, 3])
lone_sum([3, 3, 3])
=> 6
=> 2
=> 0
uniq_nums = [] は重複していない要素を取り出して保管する配列
まずは配列から、重複しない数字のみをeach doで取り出していく。
count = 0 はお馴染みのcountを0からスタートするために記述
lone_sum([3, 2, 3])でメソッドを呼び出した場合で考える
if num == i
count += 1
end
とりだした数字とが同じかの確認 する(3,2,3) == (3)、
同じであれば、何個同じか数える count += 1
if count < 2
uniq_nums << num
end
重複した値が1つのときだけ uniq_nums配列に値を追加する
num=3のときはcount=2となるので、uniq_nums配列に値は追加されない
sum = 0
uniq_nums.each do |unique_num|
sum += unique_num
end
上記で作成したuniq_nums配列の合計を求めるための記述。
sum = sum + 2、つまりsum = 0 + 2となるので「2」が出力される
以上になります。