This site is supported by donations to The OEIS Foundation.

FizzBuzz

From OeisWiki
Jump to: navigation, search


This article page is a stub, please help by expanding it.


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
such that
n   ≡   0  (mod 3)
or
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 cases 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.