# FizzBuzz Solution Dumping Ground

**URL:** <https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752>\
**Category:** uncategorized\
**Created:** [April 12, 2014, 12:16am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752 "2014-04-12T00:16:39Z")\
**Posts on this page:** 20\
**Page:** 15

<div class="post-metadata">

**Author:** ![pero93](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/p/ac8455/32.png) [@pero93](https://discourse.codinghorror.com/u/pero93)\
**Post date:** [January 31, 2019, 7:49pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/290 "2019-01-31T19:49:26Z")

</div>

I see no continue being used.

```
for (int i = 1; i <= 100; i++)
        {
            if (i % 3 == 0 && i % 5 == 0)
            {
                Console.WriteLine("Fizz-Buzz {0}", i);
                continue;
            }
            if (i % 3 == 0 && i % 5 != 0)
            {
                Console.WriteLine("Fizz {0}", i);
                continue;
            }
            if (i % 3 != 0 && i % 5 == 0)
            {
                Console.WriteLine("Buzz {0}", i);
               continue;
            }
            Console.WriteLine(i);
        }
```

---

<div class="post-metadata">

**Author:** ![Jakub\_Hronik](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/jakub_hronik/32/75956_2.png) [@Jakub\_Hronik](https://discourse.codinghorror.com/u/Jakub_Hronik)\
**Post date:** [June 4, 2019, 9:25pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/291 "2019-06-04T21:25:38Z")

</div>

In C I would use this beautiful oneliner:

```auto
for(int t=1;t<=100;t++)     
   ( (!(t%3)&&printf("Fizz")) + ((t%5==0)&&printf("Buzz")) || printf("%d", t)), putchar('\n');

```

Just 2 modulos needed, no continue, no caching, just pure misuse of logical expression evaluation mechanics.

---

<div class="post-metadata">

**Author:** ![Lee\_Dydo](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/lee_dydo/32/75979_2.png) [@Lee\_Dydo](https://discourse.codinghorror.com/u/Lee_Dydo)\
**Post date:** [June 13, 2019, 6:50pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/293 "2019-06-13T18:50:51Z")

</div>

Oh man. The article was right.

---

<div class="post-metadata">

**Author:** ![bitus](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/b/958977/32.png) [@bitus](https://discourse.codinghorror.com/u/bitus)\
**Post date:** [July 17, 2019, 12:13pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/294 "2019-07-17T12:13:53Z")

</div>

One solution in Erlang with recursion.

```auto
-module(fizzbuzz).
-export([print/0]).

	
print() ->
	FizzBuzzList = eval(100, []),
	lists:foreach(fun(Item)->io:format("~p~n", [Item]) end, FizzBuzzList).

eval(Count, Acc) when Count /= 0 ->
	Remainders = {Count rem 3, Count rem 5},
	NewAcc = case Remainders of
		{0, 0} -> ["FizzBuzz"|Acc];
		{0, _} -> ["Fizz"|Acc];
		{_, 0} -> ["Buzz"|Acc];
		{_, _} -> [Count|Acc]
	end,
	eval(Count-1, NewAcc);

eval(0, Acc) ->
	Acc.

```

---

<div class="post-metadata">

**Author:** ![Umberto\_Dos\_Santos](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/umberto_dos_santos/32/76106_2.png) [@Umberto\_Dos\_Santos](https://discourse.codinghorror.com/u/Umberto_Dos_Santos)\
**Post date:** [August 19, 2019, 6:06pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/295 "2019-08-19T18:06:29Z")

</div>

Old but gold, vb6:

```
 Dim i As Integer
 Open "C:\output.txt" For Append As #1 ' VB6 does not have native console window support
 For i=1 To 100
     If i Mod 3 = 0 Then Print #1, "Fizz"
     If i Mod 5 = 0 Then Print #1, "Buzz"
     If i Mod 15 <> 0 Then Print #1, Cstr(i)    
 Next
 Close #1

```

Also remembering that VB6 does not have an official console mode support, it’s necessary to waste two lines of code, openning and closing the text file used as Output.

---

<div class="post-metadata">

**Author:** ![alrizopa](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/a/97f17d/32.png) [@alrizopa](https://discourse.codinghorror.com/u/alrizopa)\
**Post date:** [August 29, 2019, 6:12pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/296 "2019-08-29T18:12:38Z")

</div>

My 2 cents in Perl. Not the shortest, but it is among the most compact and still readable, doesn’t cheat using a module that does the work and is not exposed, and most importantly, it works CORRECTLY (version 5.10 and above due to use of “say” instead of “print”). Yes, it is amazing how many solutions here do not follow the actual specifications (or plain don’t work):

```
while ($i++ < 100){
     my $out;
     $out = "Fizz" unless ($i%3);
    $out .= "Buzz" unless ($i%5);
    say "$out" || "$i";
}
```

---

<div class="post-metadata">

**Author:** ![alrizopa](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/a/97f17d/32.png) [@alrizopa](https://discourse.codinghorror.com/u/alrizopa)\
**Post date:** [August 29, 2019, 7:14pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/298 "2019-08-29T19:14:06Z")

</div>

This one is simpler, more readable, and no ternary ops:

```
while ($i++ < 100){
   my $out;
   $out = "Fizz" unless ($i%3);
   $out .= "Buzz" unless ($i%5);
   say "$out" || "$i";
}

# ... and oh, it works correctly according to the specs. One is not supposed to print the integer if the strings "fizz", "buzz", or "fizzbuzz" are printed (many solutions in this page disregard that point.
```

---

<div class="post-metadata">

**Author:** ![duds](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/duds/32/76174_2.png) [@duds](https://discourse.codinghorror.com/u/duds)\
**Post date:** [August 30, 2019, 10:36am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/299 "2019-08-30T10:36:13Z")

</div>

Of course we couldn’t forget our both loved and hated VBA in all its glory

Normal Loop:

```auto
Sub FizzBuzz(n As Integer)
    Dim i As Integer

    For i = 1 To n
        If i Mod 3 = 0 And i Mod 5 = 0 Then
            Debug.Print "FizzBuzz"
        ElseIf i Mod 3 = 0 Then
            Debug.Print "Fizz"
        ElseIf i Mod 5 = 0 Then
            Debug.Print "Buzz"
        Else
            Debug.Print i
        End If
    Next i

End Sub

```

And some recursive:

```auto
Sub RecursiveFizzBuzz(n As Integer)

    If n > 1 Then
        RecursiveFizzBuzz (n - 1)
        If n Mod 3 = 0 And n Mod 5 = 0 Then
            Debug.Print "FizzBuzz"
        ElseIf n Mod 3 = 0 Then
            Debug.Print "Fizz"
        ElseIf n Mod 5 = 0 Then
            Debug.Print "Buzz"
        Else
            Debug.Print n
        End If
    Else
        Debug.Print n
    End If

End Sub

```

---

<div class="post-metadata">

**Author:** ![JonatasAndrade](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/jonatasandrade/32/76260_2.png) [@JonatasAndrade](https://discourse.codinghorror.com/u/JonatasAndrade)\
**Post date:** [September 16, 2019, 2:03pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/301 "2019-09-16T14:03:59Z")

</div>

> [@Matt\_Giuca](#):
>
> Uh, someone ordered an x86 assembly version?

Now imagine that poor soul that made Roller Coaster 2, ALL in assembly…

---

<div class="post-metadata">

**Author:** ![SomeRandomDude](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/s/51bf81/32.png) [@SomeRandomDude](https://discourse.codinghorror.com/u/SomeRandomDude)\
**Post date:** [October 12, 2019, 10:21pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/302 "2019-10-12T22:21:48Z")

</div>

Let’s go python:

```
    def FizzBuzz(highestNumber, numbers, words):
	for i in range(1, highestNumber + 1):
		out = ""
		for number, word in zip(numbers, words):
			if i % number == 0:
				out += word
		print(out if out else i)

    FizzBuzz(100, [3,5], ["Fizz", "Buzz"])

```

Boom done. Reusable for different numbers and words

---

<div class="post-metadata">

**Author:** ![rvl](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/rvl/32/76330_2.png) [@rvl](https://discourse.codinghorror.com/u/rvl)\
**Post date:** [October 27, 2019, 9:37pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/303 "2019-10-27T21:37:50Z")

</div>

Python, could be more compact but this way it is more clear what the program does and less computation only mod two times instead of four.

```
for i in range(0,101):
    
    fizz = i % 5 == 0
    buzz = i % 3 == 0
    
    if fizz and buzz:
        print("FizzBuzz")
        continue
    if fizz:
        print("Fizz")
        continue
    if buzz:
        print("Buzz")
        continue
    print(i)
```

---

<div class="post-metadata">

**Author:** ![O\_Prime](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/o_prime/32/76553_2.png) [@O\_Prime](https://discourse.codinghorror.com/u/O_Prime)\
**Post date:** [March 15, 2020, 8:40pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/304 "2020-03-15T20:40:04Z")

</div>

In java, but in functional paradigm (don’t do this at work).

```java
public static void main(String[] args) {
	final String result = IntStream
			.rangeClosed(1, 100)
			.mapToObj(Scratch::fizzBuzz)
			.collect(Collectors.joining(", "));

	System.out.print(result);
}

static String fizzBuzz(int n) {
	return buzz(n)
			.andThen(fizz(n))
			.apply(Function.identity())
			.apply(String.valueOf(n));
}

static Function<Function<String, String>, Function<String, String>> buzz(int n) {
	return test(n, 5, "buzz");
}

static Function<Function<String, String>, Function<String, String>> fizz(int n) {
	return test(n, 3, "fizz");
}

static Function<Function<String, String>, Function<String, String>> test(int number, int divisor, String match) {
	return f -> d -> test(number, divisor, match, f, d);
}

static String test(int number, int divisor, String match, Function<String, String> next, String defaultValue) {
	return number % divisor == 0
			? match + next.apply("")
			: next.apply(defaultValue);
}

```

---

<div class="post-metadata">

**Author:** ![srmalloy](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/s/8e7dd6/32.png) [@srmalloy](https://discourse.codinghorror.com/u/srmalloy)\
**Post date:** [July 29, 2020, 12:52am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/305 "2020-07-29T00:52:09Z")

</div>

And since no one seems to have picked MUMPS in thirteen years of responses:

`F I=1:1:100 W !,$S(I#15=0:"Fizzbuzz",I%3=0:"Fizz",I%5=0:"Buzz",1:I)`

---

<div class="post-metadata">

**Author:** ![Garet\_Claborn](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/garet_claborn/32/76838_2.png) [@Garet\_Claborn](https://discourse.codinghorror.com/u/Garet_Claborn)\
**Post date:** [September 22, 2020, 12:41am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/306 "2020-09-22T00:41:19Z")

</div>

Surprised no one posted this efficient solution so far.

I’ll post it in PHP I guess, but the concept works in most languages.

```
function FizzBuzz($limit = 100, $FizzMultiple=3, $BuzzMultiple=5){
    for($i=0; $i < $limit; $i++){
        echo $i .': ';
        switch(true){
            case ($i % $FizzMultiple == 0) : echo "Fizz";
            case ($i % $BuzzMultiple == 0) : echo "Buzz"; break;
            default: break;
        }
        echo PHP_EOL;
    }
}
FizzBuzz(1500);

function FizzBuzz2($limit = 100, $FizzMultiple=3, $BuzzMultiple=5){
    for($i=0; $i < $limit; $i++){
        echo $i .': ';
        if($i % $FizzMultiple == 0)
            echo "Fizz";
        if($i % $BuzzMultiple == 0)
            echo "Buzz";
        echo PHP_EOL;
    }
}
FizzBuzz2(1500);
```

---

<div class="post-metadata">

**Author:** ![Claire\_Codes](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/claire_codes/32/76898_2.png) [@Claire\_Codes](https://discourse.codinghorror.com/u/Claire_Codes)\
**Post date:** [November 14, 2020, 12:36pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/308 "2020-11-14T12:36:22Z")

</div>

Well I read the article and knew I had to dump my JS solution for it 🙂

```
var i;
for (i = 1; i < 101; i++) {
    if((i%3==0) && (i%5==0)) {
        console.log("FizzBuzz");
    } else if(i%3==0) {
        console.log("Fizz");
    } else if(i%5==0) {
        console.log("Buzz");
    } else {
        console.log(i);
    }
}
```

---

<div class="post-metadata">

**Author:** ![samson\_amwata](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/samson_amwata/32/76970_2.png) [@samson\_amwata](https://discourse.codinghorror.com/u/samson_amwata)\
**Post date:** [January 8, 2021, 5:49am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/310 "2021-01-08T05:49:36Z")

</div>

I tried this simple code 😃

```
for number in range(101):
    if number%15 == 0 :
       print("FizzBuzz")
    elif number%5 == 0:
        print("Buzz")
    elif number%3 == 0: 
        print("Fizz")
    else:
        print(number)
```

---

<div class="post-metadata">

**Author:** ![codinghorror](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/codinghorror/32/36371_2.png) [@codinghorror](https://discourse.codinghorror.com/u/codinghorror)\
**Post date:** [January 15, 2021, 2:41am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/311 "2021-01-15T02:41:19Z")

</div>

Surprised nobody has posted this here yet…

[![](https://discourse-cdn.codinghorror.com/uploads/default/original/3X/8/a/8a4f73b6f546cf7ac036d43d468d59b2161cae9c.jpeg "Coding in Stenography, Quick Demo") ](https://www.youtube.com/watch?v=RBBiri3CD6w)

---

<div class="post-metadata">

**Author:** ![Brandon\_Tseng](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/brandon_tseng/32/77249_2.png) [@Brandon\_Tseng](https://discourse.codinghorror.com/u/Brandon_Tseng)\
**Post date:** [April 26, 2021, 10:02pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/312 "2021-04-26T22:02:44Z")

</div>

```
for num in range(1,100):
    if num % 3 == 0:
        print("Fizz", num)
    elif num % 5 == 0:
        print("Buzz", num)
    elif num % 3 == 0 and num % 5 == 0:
        print("FizzBuzz", num)
    elif num % 1 == 0:
        print("Prime", num)
```

---

<div class="post-metadata">

**Author:** ![Brandon\_Tseng](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/brandon_tseng/32/77249_2.png) [@Brandon\_Tseng](https://discourse.codinghorror.com/u/Brandon_Tseng)\
**Post date:** [May 7, 2021, 2:41am UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/314 "2021-05-07T02:41:30Z")

</div>

Thank you for liking my code. I also wrote two different paper, scissors, rock program but was difficult at the start and abstract but I put mind to work and think and think with music. I am a computer science major in 4-year computer science degree program. I am really dedicating as much time to learn Python3.9.4, C++, C#, R, and several others. My main programming languages to learn is Python 3 for data science/ml/games, C# for Unity3D, C++ for Unreal Engine, R for statistical, mathematical, and graphical computing. Also, I heard software design documents are effective in computer programming but I need tips.

Also, wrote several python programs and couple (more than 10 i think) of C++ program and still learning…

---

<div class="post-metadata">

**Author:** ![Yarrow](https://discourse-cdn.codinghorror.com/user_avatar/discourse.codinghorror.com/yarrow/32/77397_2.png) [@Yarrow](https://discourse.codinghorror.com/u/Yarrow)\
**Post date:** [September 28, 2021, 10:36pm UTC](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752/315 "2021-09-28T22:36:41Z")

</div>

Java Solution

```auto
class Main {
  public static void main(String[] args) {
    int i = 0;
    while (i != 101) {
      if ((i % 3 == 0)&(i % 5 != 0)){
        System.out.println("Fizz");
      } else if ((i % 3 != 0)&(i % 5 == 0)){
        System.out.println("Buzz");
      } else if ((i % 3 == 0)&(i % 5 == 0)){
        System.out.println("FizzBuzz");
      } else {
        System.out.println(i);
      }
      i++;
    }
  }
}

```

Python  
[COMING SOON]

[Previous page](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752.md?page=14)

[Next page](https://discourse.codinghorror.com/t/fizzbuzz-solution-dumping-ground/1752.md?page=16)
