はじめに
これは学習のメモになりますのでご了承ください。
今回は5以上の整数の合計を求めていきます。
* 改行区切りで整数がn個入力されるので、n個の整数のうち、5以上のものを全て足し合わせた値
入力例1
1
3
出力例1
0
入力例2
9
2
-3
-3
4
-1
6
4
5
8
出力例2
19
ソースコード
loop = gets.chomp.to_i
ans = 0 //初期値を設定
(1..loop).each do |i|
num = gets.chomp.to_i
if num >= 5
ans = ans + num
end
end
puts ans
解説
loop = gets.chomp.to_i
gets.chomp.to_i
は1行目(例2で言うところの 9)を取得
・getsメソッドで入力値を取得
・chompメソッド: 文字列の改行を取り除く。
・to_iメソッド: 文字列を整数に変換
(1..loop).each do |i|
(1..loop)
でloopに代入した値の1以降の値を繰り返し取り出して変数i
に代入している(2行目以降(例2で言うところの 2 -3 -3 4 -1 6 4 5 8)を取得)
num = gets.chomp.to_i
変数iに代入した値を再度を整数に変換しnumに代入する
if num >= 5
ans = ans + num
end
if文でnumが5以上の場合だけansに足していく
最後に
each文のなかで再度また整数に変換するところがなぜ必要なのか分からなかったです。
ご教授いただいてありがとうございました!