fizzbuzz
なんとなく悔やまれるのでリトライ。制限時間 30m というシバリはスルーで。
引数としては 3 個指定されていなければ ignore ということにします。あと、数値でなかった場合は例外 (to_i してるだけ)。
#!/usr/bin/env ruby class Fizzbuzz def initialize(limit, fizz, buzz) @array = Array.new(limit.to_i) for i in 0..limit - 1 do @array[i] = i + 1 end @fizz = fizz.to_i @buzz = buzz.to_i @fizzbuzz = @fizz * @buzz @array.map! { |tmp| if (tmp % @fizzbuzz == 0) "fizzbuzz" elsif (tmp % @fizz == 0) "fizz" elsif (tmp % @buzz == 0) "buzz" else tmp.to_s end } end def print @array.each { |i| puts i } end end limit = 100 fizz = 3 buzz = 5 if ARGV.count > 2 limit = ARGV[0].to_i fizz = ARGV[1].to_i buzz = ARGV[2].to_i end fb = Fizzbuzz.new(limit, fizz, buzz) fb.print
うーん、微妙。