ITP1_1_C Rectangle
AOJ第2日目!
問題
本物はこちら ->
長方形 | プログラミング入門 | Aizu Online Judge
長方形の面積と周の長さ
たて a cm よこ b cm の長方形の面積と周の長さを求めるプログラムを作成して下さい。
Input
a と b が1つの空白で区切られて与えられます。
Output
面積と周の長さを1つの空白で区切って1行に出力して下さい。
とのことで、今度は入力される数値は2つ、空白区切りで与えられるので、
それを正しく数値として入力できるか、ということを試されている感じですね。
自分のコード
a = gets.split(" ") s = a[0].to_i*a[1].to_i x = 2*a[0].to_i+2*a[1].to_i puts s.to_s + " " + x.to_s
入力されたデータを空白で区切って配列にし、aに代入。
その後、sを面積、xを周の長さとして、aに代入した値を.to_iで整数にし
計算して代入しておく。
その後、putsでsとxをそれぞれ文字列にしたものを空白を挟んでつなぎ、出力。
という感じです。
他の人のコード
なんか、ここまで来るとすごく短い人とかすごく長い人がいて、非常に面白いですね。
すごく長い人
class RectangleCaliculator def calcArea(width, height) return width * height end def calcCircumference(width, height) return (width + height) * 2 end end # 入力の横、縦の長さ取得 inputArray = gets.split(nil) height = inputArray[0].to_i width = inputArray[1].to_i # 計算クラスを作成し、面積、周の長さを計算 rect = RectangleCaliculator.new area = rect.calcArea(width, height) circumference = rect.calcCircumference(width, height) # 出力 puts area.to_s + " " + circumference.to_s
あっ、出ました!
クラス作っちゃう系!
でも、可読性は高くていいですね。
クラスの中身を見なくても、何をしているのか見た瞬間分かります。
すごく短い人
i,j = gets.split.map(&:to_i) puts "#{i*j} #{i*2+j*2}"
あ、なるほど! これでいいのか!
gets.split.map(&:to_i)で、入力された文字列を区切って整数にして配列にして、
二つのデータを別々にiとjに代入してるんですね!
勉強になります…