## C++ || FizzBuzz – Tackling The Fizz Buzz Test In C++

What is Fizz Buzz?

Simply put, a “Fizz-Buzz test” is a programming interview question designed to help filter out potential job prospects – those who can’t seem to program if their life depended on it.

An example of a typical Fizz-Buzz question is the following:

Write a program which prints the numbers from 1 to 100. But for multiples of three, print the word “Fizz” instead of the number, and for the multiples of five, print the word “Buzz”. For numbers which are multiples of both three and five, print the word “FizzBuzz”.

This seems easy enough, and many should be able to complete a program which carries out a solution in a few minutes. Though, after doing a little research, apparently that is not the case. This page will present one way to carry out a solution to this Fizz-Buzz problem.

There is a small “catch” that some may encounter when trying to solve this problem, and that is the fact that the conditional statement for the number divisible by 15 should come before each sequential conditional statement. Consider this pseudocode:

``` // A simple Fizz-Buzz algorithm using a while loop 'currentNumber' = 1 while('currentNumber' is less than or equal to 100) { if('currentNumber' is divisible by 3) AND ('currentNumber' is divisible by 5) print "FizzBuzz" else if('currentNumber' is divisible by 3) print "Fizz" else if('currentNumber' is divisible by 5) print "Buzz" else // 'currentNumber' is not divisible by 3 or 5 print 'currentNumber' increment 'currentNumber' by one }// http://programmingnotes.org/ 123456789101112131415 // A simple Fizz-Buzz algorithm using a while loop 'currentNumber' = 1while('currentNumber' is less than or equal to 100){    if('currentNumber' is divisible by 3) AND ('currentNumber' is divisible by 5)        print "FizzBuzz"    else if('currentNumber' is divisible by 3)        print "Fizz"    else if('currentNumber' is divisible by 5)        print "Buzz"    else // 'currentNumber' is not divisible by 3 or 5         print 'currentNumber'    increment 'currentNumber' by one}// http://programmingnotes.org/ ```

The portion that may make this problem tricky for some is the fact that the conditional statement for the number divisible by 15 must be checked -before- the conditional statements which checks for numbers divisible by 3 and 5. If the conditional statements are placed in any other order, the end result will not be correct, which is what can make the problem difficult for many.

======= THE FIZZ BUZZ TEST =======

So building upon the pseudocode found from above, utilizing the modulus operator, here is a simple solution to the Fizz Buzz Test

``` The Fizz Buzz Test C++ // ============================================================================ // Author: Kenneth Perkins // Date: May 10, 2012 // Taken From: http://programmingnotes.org/ // File: fizzbuzz.cpp // Description: Demonstrates the fizz buzz test // ============================================================================ #include <iostream> using namespace std; int main() { // declare variables int fizz = 3; int buzz = 5; int endNumber = 100; int fizzBuzz = fizz * buzz; // ^ numbers divisible by 3 and 5 are also divisible by 3 * 5 // start the loop, continue until the counter // reaches the 'end' for (int currentNumber = 1; currentNumber <= endNumber; ++currentNumber) { if (currentNumber % fizzBuzz == 0) // divisible by 3 and 5 { cout<<"FIZZ BUZZ!!\n"; } else if (currentNumber % fizz == 0) // divisible by 3 { cout<<"FIZZ\n"; } else if (currentNumber % buzz == 0)// divisible by 5 { cout<<"BUZZ\n"; } else // not divisible by 3 or 5 { cout<<currentNumber<<endl; } } return 0; }// http://programmingnotes.org/ 123456789101112131415161718192021222324252627282930313233343536373839404142 // ============================================================================//    Author: Kenneth Perkins//    Date:   May 10, 2012//    Taken From: http://programmingnotes.org///    File:  fizzbuzz.cpp//    Description: Demonstrates the fizz buzz test// ============================================================================#include <iostream>using namespace std; int main(){    // declare variables    int fizz = 3;    int buzz = 5;    int endNumber = 100;    int fizzBuzz = fizz * buzz;     // ^ numbers divisible by 3 and 5 are also divisible by 3 * 5     // start the loop, continue until the counter     // reaches the 'end'    for (int currentNumber = 1; currentNumber <= endNumber; ++currentNumber)    {        if (currentNumber % fizzBuzz == 0) // divisible by 3 and 5        {            cout<<"FIZZ BUZZ!!\n";        }        else if (currentNumber % fizz == 0) // divisible by 3        {            cout<<"FIZZ\n";        }        else if (currentNumber % buzz == 0)// divisible by 5        {            cout<<"BUZZ\n";        }        else // not divisible by 3 or 5        {            cout<<currentNumber<<endl;        }    }    return 0;}// http://programmingnotes.org/ ```

QUICK NOTES:
The highlighted lines are sections of interest to look out for.

The code is heavily commented, so no further insight is necessary. If you have any questions, feel free to leave a comment below.

Once compiled, you should get this as your output

```1 2 FIZZ 4 BUZZ FIZZ 7 8 FIZZ BUZZ 11 FIZZ 13 14 FIZZ BUZZ!! 16 17 FIZZ 19 BUZZ FIZZ 22 23 FIZZ BUZZ 26 FIZZ 28 29 FIZZ BUZZ!! 31 32 FIZZ 34 BUZZ FIZZ 37 38 FIZZ BUZZ 41 FIZZ 43 44 FIZZ BUZZ!! 46 47 FIZZ 49 BUZZ FIZZ 52 53 FIZZ BUZZ 56 FIZZ 58 59 FIZZ BUZZ!! 61 62 FIZZ 64 BUZZ FIZZ 67 68 FIZZ BUZZ 71 FIZZ 73 74 FIZZ BUZZ!! 76 77 FIZZ 79 BUZZ FIZZ 82 83 FIZZ BUZZ 86 FIZZ 88 89 FIZZ BUZZ!! 91 92 FIZZ 94 BUZZ FIZZ 97 98 FIZZ BUZZ ```