fizz = [nil, nil, "Fizz"].cycle.take(100) buzz = [nil, nil, nil, nil, "Buzz"].cycle.take(100) numbers = 1..100 numbers.zip(fizz, buzz) do |n, f, b| fizzbuzz = [f, b].join puts(fizzbuzz.empty? ? n : fizzbuzz) end