(備忘録)AtCoderをやって13

問題1

A 歳の高橋君が観覧車に乗ろうとしています。

この観覧車は、13 歳以上が乗るには B 円 (B は偶数) かかりますが、6 歳以上 12 歳以下の人はその半額で乗ることができ、 さらに 5 歳以下の人は無料で乗ることができます。

高橋君が観覧車に乗るには何円かかるかを求めてください。

atcoder.jp

自分の回答

age, fee = gets.split.map(&:to_i)
if age <= 5
  puts 0
elsif age <= 12
  puts fee / 2
else 
  puts fee
end

その他の回答

三項演算子の中に三項演算子を入れるパターンは思い付かなかった (ただ実務ではこれ見やすいのかな?という疑問は残る)

a,b = gets.chomp.split(" ").map(&:to_i)
puts a <= 5 ? 0 : (a <= 12 ? b/2 : b)

問題2

下記参照

atcoder.jp

自分の回答

a, b, c = gets.split.map(&:to_i)
cnt = 0
while cnt < 10
  d = a * c - b
  puts d
  c = d
  cnt += 1
end

その他回答

putsした後にわざわざ代入しなくても出た値をそのまま次の処理に入れればいい訳ですね。

r,d,x = gets.split.map(&:to_i)

10.times do
  x = r * x - d
  puts x
end