This site is supported by donations to The OEIS Foundation.
FizzBuzz
FizzBuzz is a computer programming exercise that has been accorded an exaggerated importance in the process of interviewing people for software developer jobs.
The exercise itself is quite simple enough: take a range of consecutive integers (usually 1 to 100) and:
- Replace all multiples of 15 (A008597) with the word “FizzBuzz,”
- Replace the other multiples of 5 (numbers in A008587 but not A008597) with the word “Buzz,” and
- Replace the multiples of 3 (A008585) that are not multiples of 5 with the word “Fizz.”
The problem solution for the usual range is then:
- {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, Buzz, ...}
See: A281746 Nonnegative numbers
n |
n ≡ 0 (mod 3) |
n ≡ 0 (mod 5) |
The usual method to solve it by the procedural paradigm is to use a for
loop with either nested if
statements or a switch
statement with the case
s 3, 6, 9, 12, 5, 10 and 15.
By the functional paradigm, a range object is given to replacement functions. For example, in Wolfram Mathematica:
Range[100] /. {_?(GCD[15, #] == 15 &) -> "FizzBuzz", _?(GCD[15, #] == 5 &) -> "Buzz", _?(GCD[15, #] == 3 &) -> "Fizz"}
Regardless of how well or how poorly the job applicant does, it is always possible to interpret the applicant’s solution to confirm the predetermined outcome. But that’s beyond the scope of this reference.