Skip to content

Comment on FizzBuzz: the test helps filter out the 99.5% of programming job candidates

Comments

I'm a little bit surprised of "if-else if-else if" mindset in c2.com wiki entry for this. I always thought of FizzBuzz solution without a single else, like this:

  for (int i = 1; i <= 100; ++i) {
    boolean pureNumba = true;
    if (i % 3 == 0) {
      System.out.print("Fizz");
      pureNumba = false;
    }
    if (i % 5 == 0) {
      System.out.print("Buzz");
      pureNumba = false;
    }
    if (pureNumba) {
      System.out.print(i);
    }
    System.out.println();
  }

Whether an extra variable is better than an extra conditional is mostly a matter of taste. Yours gets the job done too.

Why not just

  if (i % 3 != 0 && i % 5 != 0)
this extra boolean variable out?

I like to think it's matter of readability. "if (pureNumber)" vs. "if (i % 3 != 0 && i % 5 != 0)". Also, one extra variable vs. reversal of already mentioned condition. Yes, we're splitting hair here :)

The solution doesn't takes into consideration the 'fizzbuzz' output. Your solution would print both fizz and buzz when the int is divisible by both 3 and 5.

"For numbers which are multiples of both three and five print “FizzBuzz”."

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.