0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ruby問題 アウトプット

Last updated at Posted at 2021-03-18

3つの数値の合計を出力するメソッドを作りましょう。
ただし、同じ数が含まれている場合は、
合計にカウントされません。
下記は、数値が1と2と3の場合の内容です。

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])

下記が解説です。

def lone_sum(ary)   #aryの中身は1,2,3です。
  uniq_nums = []      #uniq_numsが空の状態です。
  ary.each do |num|  #aryをnumという変数にして1,2,3を繰り返します。
    count = 0     #カウントは0から始まります。
    ary.each do |i|   #aryをiという変数にして1,2,3を繰り返します。
      if num == i    #numとiが同じ数値であればtrueを出力します。
        count += 1   #trueの場合その数値の数を1から数えます。今回は、1,2,3それぞれ1と1と1です。           
      end        #eachは範囲内の処理が終わるまで繰り返されません。つまり、numがそのままでiの数値が繰り返される処理がnumの数値分、繰り返されます。    
    end
    if count < 2      #カウントが2未満の場合trueを出力します。
      uniq_nums << num   #trueの場合、uniq_numsにnumを代入します。今回は、1と2と3が代入されます。               
    end
  end
  sum = 0              #sumは0です。
  uniq_nums.each do |unique_num|  #uniq_numsを繰り返します。
    sum += unique_num       #sum = (0+1)+(0+2)+(0+3) = 6
  end
  puts sum   #6が出力されます。
end

lone_sum([1, 2, 3])
0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?