rubyco(るびこ)の日記 RSSフィード

2007-05-09

Fizz-Buzz問題

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

どうしてプログラマに・・・プログラムが書けないのか?

Fizzを出すのは「3の倍数であって5の倍数でないとき」と仮定して解く。

a = Array.new
(1..100).each do |k|
  if k % 3 == 0 and k % 5 == 0
    a << 'FizzBuzz'
  elsif k % 3 == 0
    a << 'Fizz'
  elsif k % 5 == 0
    a << 'Buzz'
  else
    a << k
  end
end
puts a