LoginSignup
0
0

More than 3 years have passed since last update.

万歩計(Ruby編)

Posted at

Rubyで万歩計を解く!(for文,スコープ,自己代入演算子)

問題

1 日あたりどの程度歩いたのか知りたくなったあなたは、1 日の平均歩数を計算してみることにしました。記録した日数と、歩数のデータが与えられるので、1 日あたりの歩数の平均を求めるプログラムを作成してください。

平均とは与えられた値の合計をデータの数で割った値を指します。

入力される値

入力は以下のフォーマットで与えられます。

N
a_1
...
a_N
・1 行目には、記録した日数を表す整数 N が与えられます。
・1 + i ( 1 ≦ i ≦ N )行目には、i 日目に歩いた歩数を表す整数 a_i が与えられます。
・入力は全部で N + 1 行となり、最後に 1 つ改行が入ります。

期待する出力

1 日あたりの歩数の平均を整数で出力してください。ただし、小数点以下は切り捨てるものとします。

入力例1

6
12
7
51
15
50
24

出力例1

27

入力例2

3
1
1
2

出力例2

1

私の答え

a = gets.chomp.to_i
s = 0
for i in 1..a do
    int = gets.chomp.to_i
    s += int
end
print s / a

今回の注目するポイント

1行目で入力値1文字目である入力例(1)の「6」や入力例(2)の「3」に注目する。この数だけ入力値が下に続いている事が分かる。つまり繰り返し処理をしてgetsしないといけないと想像できる。

2行目のs = 0は3~6行目の繰り返し処理外(スコープ外)でも結果を出力できるように定義しています。ここ重要。

3~6行目はfor文を使って入力値の繰り返し処理と変数sに自己代入演算子でint(繰り返される入力値)を足していきますよ!という処理です。

そして7行目の時点で入力値の合計が変数sに代入されているので変数sを変数aで割れば今回の合計値から平均値を求める事ができます。

余談として、小数点以下を切り捨てるメソッドはfloorですのでprint 変数.floorとかで良いかもしれませんね!

以上!

0
0
0

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
0