Skip to content

Instantly share code, notes, and snippets.

@dv
Last active August 29, 2015 14:21
Show Gist options
  • Save dv/df9556807a8fdb1a3994 to your computer and use it in GitHub Desktop.
Save dv/df9556807a8fdb1a3994 to your computer and use it in GitHub Desktop.
FizzBuzz without conditionals, answer to a nerdsnipe
# Changes ["Fizz", "Buzz"] into ["FizzBuzz"]
def collapse(hash)
hash.each do |key, value|
hash[key] = [value.join()]
end
end
100.times.each do |i|
result = Hash.new{[]}
# Fizz
result[i % 3] += ["Fizz"]
# Buzz
result[i % 5] += ["Buzz"]
# Make FizzBuzz
collapse(result)
# Normal numbers
result[0] += [i]
# The first element of the array at key 0 is our desired output
puts result[0].first
end
# >> FizzBuzz
# >> 1
# >> 2
# >> Fizz
# >> 4
# >> Buzz
# >> Fizz
# >> 7
# >> 8
# >> Fizz
# >> Buzz
# >> 11
# >> Fizz
# >> 13
# >> 14
# >> FizzBuzz
# >> 16
# >> 17
# >> Fizz
# >> 19
# >> Buzz
# >> Fizz
# >> 22
# >> 23
# >> Fizz
# >> Buzz
# >> 26
# >> Fizz
# >> 28
# >> 29
# >> FizzBuzz
# >> 31
# >> 32
# >> Fizz
# >> 34
# >> Buzz
# >> Fizz
# >> 37
# >> 38
# >> Fizz
# >> Buzz
# >> 41
# >> Fizz
# >> 43
# >> 44
# >> FizzBuzz
# >> 46
# >> 47
# >> Fizz
# >> 49
# >> Buzz
# >> Fizz
# >> 52
# >> 53
# >> Fizz
# >> Buzz
# >> 56
# >> Fizz
# >> 58
# >> 59
# >> FizzBuzz
# >> 61
# >> 62
# >> Fizz
# >> 64
# >> Buzz
# >> Fizz
# >> 67
# >> 68
# >> Fizz
# >> Buzz
# >> 71
# >> Fizz
# >> 73
# >> 74
# >> FizzBuzz
# >> 76
# >> 77
# >> Fizz
# >> 79
# >> Buzz
# >> Fizz
# >> 82
# >> 83
# >> Fizz
# >> Buzz
# >> 86
# >> Fizz
# >> 88
# >> 89
# >> FizzBuzz
# >> 91
# >> 92
# >> Fizz
# >> 94
# >> Buzz
# >> Fizz
# >> 97
# >> 98
# >> Fizz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment