おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

Asobozeをはじめました。そして今さらFizz-Buzz問題

 Railsで作るサービス第二弾は、Webカレンダーの Asobozeです。ユルさんに頼まれて、仲間内だけで使えるものを作ったのですが、複数のカレンダーをいくらでもつくれるようにして、誰でも使えるものにしてみました。今後の課題はサイトデザインです(今はノータッチ)。

 今さらですが、 Fizz-Buzz問題をやってみました。「2分とかからずにできるはずだ」とあるので、とにかく直観のままに1分で書いてみたのが以下のコード。

1.upto(100) do |i|  
  output = ''  
  if i % 3 == 0  
    output << 'Fizz'  
  end  
 
  if i % 5 == 0  
    output << 'Buzz'  
  end  
 
  if output.empty?  
    output << i.to_s  
  end  
 
  puts output  
end  

 もうちょっとイジくってみよう。

1.upto(100) do |i|  
  output = ''  
  output << 'Fizz' if i % 3 == 0  
  output << 'Buzz' if i % 5 == 0  
  output << i.to_s if output.empty?  
  puts output  
end  

 なんとなくoutputという文字列オブジェクトを使うのが納得いかない気がする。わかりやすいけど洗練されていませんね。
 ちなみにワンライナでいくとこんな風になりました。

(1..100).to_a.map{ |i| i % 15 == 0 ? 'FizzBuzz' : i }.map{ |i| i % 3 == 0 ? 'Fizz' : i}.map{ |i| i % 5 == 0 ? 'Buzz' : i }.each{ |i| puts i }  

 きたねー。

 日曜の夜はなんだかゆったり時間があったので、溜っていたメールやRSSリーダの記事を消化したりしてました。こういうのって、溜りすぎるともう読めなくなっちゃうから注意が必要です。