るびらな!

RubyをLearnする人の勉強記録。(超)弩(級の)素人なので、誰かダメさがわかる人に罵ってもらったりして、少しずつ知見を広げたいと思っています。

ITP1_4_B Circle@Ruby

ここも押していただけると嬉しいです #=> にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ Rubyへ にほんブログ村 IT技術ブログ Ruby on Railsへ

さて、今日は遅くなってしまいましたが、AOJをRubyで解いていきましょう!

今日の問題はこちら ->
円 | プログラミング入門 | Aizu Online Judge


問題

円の面積と円周

半径 r の円の面積と円周の長さを求めるプログラムを作成して下さい。


Input

1つの実数 r が与えられます。


Output

面積と円周の長さを1つの空白で区切って1行に出力して下さい。出力は浮動小数点数とし、0.00001 以下の誤差を含んでもよいものとします。

あ、これは簡単ですね。

ほぼ無神経に計算してもOKという、親切設計です。






自分のコード

include Math
 
r = gets.to_f
 
printf "%f %f\n",r*r*PI,2*r*PI

やっぱり、円周率はPI使いたかったので、Mathをincludeして書いてみました。

includeせずに呼び出しても良かったのですが、ここはコードをスッキリさせることを優先してみました。

他の人のコード

実行速度が最速だった人

r = gets.to_f
s = (r*r)*(Math::PI)
l = 2*r*(Math::PI)
printf("%f %f\n", s, l)

基本の作戦は同じですね。ただ、Mathをincludeしていないので、その都度呼び出していました。

コードが最小の人

puts [(p=-1.arg*r=gets.to_f)*r,p*2]*" "

ワンライナーで書いていてすごいと思うんだけど、どこをどう読んだらいいのか全く分かりません…

感想

やっぱり、問題が単純だとみんなやること一緒で面白くないですねー。

またちょっとずつ、Rubyそのもののプログラミングにもちゃんと挑戦していきたいと思います。