遅まきながらFizzBuzz
2年くらい前にさんざんはやったので、超今更なのだけど....
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
私ならこんな感じかなぁ。(ruby)
1.upto(100) { |x| s = x if (s = ['Fizz','',''][x % 3]+['Buzz','','','',''][x % 5]) == '' puts s }
【2008/11/30追記】ちょっと修正。こっちのほうがしっくりくるかも。(数値分のリテラルが並ぶのが気持ち悪かったので)
1.upto(100) { |x| s = x if (s = (['Fizz'][x % 3] || '')+(['Buzz'][x % 5] || '')) == '' puts s }