#はじめに
エレベーターの距離計算機能。絶対値などの計算の練習メモ。
#作る機能
①移動データを、配列として取得する
②数値の初期設定
③距離を絶対値で計算する
#実際のコード
#入力データを、配列として取得する
input_lines = readlines.map &:to_i
#現状の階数と、距離の初期設定
floor_now = 1
distance = 0
input_lines.each do |a|
#距離の絶対値で計算をする
if (a - floor_now) >0
distance += a - floor_now
else
distance -= a - floor_now
end
#距離計算後に、階数を更新する
floor_now = a
end
puts distance
#絶対値の計算をもっと簡単に
コメントでのアドバイスを反映。5行で書いていた下記の絶対値の計算。
#距離の絶対値で計算をする
if (a - floor_now) >0
distance += a - floor_now
else
distance -= a - floor_now
end
下記のように1行で書き直すことが可能。
#距離の絶対値で計算をする
distance += (a - floor_now).abs