らぼらとり

koutya07の日記、備忘録

Rubyの練習〜

Rubyの練習にこれやってみるabc026.contest.atcoder.jp


標準機能の細かい挙動を覚えるにはこういう問題解くのが一番だと思う。

def circle(x)
  x * x * Math::PI
end

N = gets.to_i

r = Array.new

N.times do |i|
  r[i] = gets.to_i
end

s = 0

r.sort.reverse.each_with_index do |x, i|
  if i.even?
    s += circle(x)
  else
    s -= circle(x)
  end
end

p s

できるだけRubyっぽく書きたかった。
each_with_indexとか知らなかったから勉強になった。
こここうしたほうがいいよってあったらコメントでください。
よろしくお願いします。