これは、古典的なFizzBuzz演習を行うためのかなり非正統的な方法ですが、問題を説明するためのものです (そして、10 億まで fizzbuzz したい場合は、高速になる可能性があります)。
fizzer = ( Array.new( 2, '' ) << 'Fizz' ).cycle
buzzer = ( Array.new( 4, '' ) << 'Buzz' ).cycle
(1..100).each do |number|
fizzbuzz = fizzer.next + buzzer.next # this line is giving me problems.
puts ( fizzbuzz.empty? ? number : fizzbuzz )
end
{3 => 'Fizz', 5 => 'Buzz', 7 => 'Boozz'} のようなハッシュを受け入れるようにこのコードを一般化する方法は?