FizzBuzz

From Esolang
Jump to navigation Jump to search

A FizzBuzz program is essentially a counting program. It prints all integers in a certain range, generally 1 to 100, one-by-one. However, multiples of 3 are replaced with "Fizz", and multiples of 5 are replaced with "Buzz". Multiples of 15 (e.g., multiples of lcm(3, 5)) are replaced with "FizzBuzz".

In other words, the program outputs:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
...

There also exist variants where the multipliers are different from 3 and 5, eg. 4 and 7 are common.

History

FizzBuzz originated as a non-computer educational game where a group of children sit in a circle and take turns counting, replacing numbers with "fizz" and "buzz" when required. When a child makes a number of mistakes or fails to go as fast as possible, they are eliminated from the game. FizzBuzz gained wider popularity as a programming question in 2007 following several popular blog posts which discussed it as an example of a problem that most applicants for professional programming jobs cannot complete.[1][2][3]

Domain-specific languages

The following languages are designed specifically to implement FizzBuzz and variants:

See also BuzzFizz, which was designed as a general-purpose esolang made out of the primitives needed to implement FizzBuzz.

Examples

brainfuck

>>>>>>>>>>>>>>>[-]+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+<<<[-]<[-]>>>[<<<+>>>-]+<[<<->+>-]<[>+<-]<[>>>-<<<[-]]>[-]>>[>-<<<+>>-]<<[>>+<<-]>>>[>[-]<<<[>>>+<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<<[>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>>>>[<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<<+++<<[>+>->+<[>]>[<+>-]<<[<]>-]>[-]>[-]>[>>>>>>>>>>>>>>+<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>[-]<<<<[>>>>+<<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<<[>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>>>>>[<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<<<+++++<<[>+>->+<[>]>[<+>-]<<[<]>-]>[-]>[-]>[>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>>[-]>[-]<<<[>>+>+<<<-]>>[<<+>>-]+>[>>[-]>[-]<<<<<[>>>>+>+<<<<<-]>>>>[<<<<+>>>>-]+>[<<<<<<<<<[<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>+>-]<<<<<<<<<<<<<<[-]>[-]+>[-]+<[>[-<-<<[->+>+<<]>[-<+>]>>]++++++++++>[-]+>[-]>[-]>[-]<<<<<[->-[>+>>]>[[-<+>]+>+>>]<<<<<]>>-[-<<+>>]<[-]++++++++[-<++++++>]>>[-<<+>>]<<]<[.[-]<]<[-]>>>>>>>>>>>>>>[>+<-]>>>>>>>>>->[-]]<[<<<<<<<<<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]>>>>>>>>>-]<<<->[-]]<[>>>>>>[-]>[-]<<<<<<<<[>>>>>>>+>+<<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]+>[<<<<<<<<<<<<<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]>>>>>>>>>>>>->[-]]<[<<<<<<<<<<<<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]>>>>>>>>>>>>-]<<<<<<-]<<<<<<<[-]++++++++++.[-]>>+>[-]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>[-]+<<<[-]<[-]>>>[<<<+>>>-]+<[<<->+>-]<[>+<-]<[>>>-<<<[-]]>[-]>>[>-<<<+>>-]<<[>>+<<-]>>>]

Compiled using BFFuck, source code here.

Befunge

>1+:3%!#v_>:5%!#v_v
^,*52.:_ `@#\"d" :<
 v"Fizz"<        >v
 >,,,,:5%        | 
         v"Buzz"<< 
         >,,,,v    
^         ,*52<   < 

More Compact Version:

>1+:3%!#v_>:5%!#v_v
^,*52.:_ `@#\"d" :<
 v"Fizz"<        >v
 >,,,,:5%        | 
     v,,,,"Buzz"<< 
^,*52<            < 

BunnyBell

include lib/Math/Ops.bbe 
func @main char @c  int @i 0 label @loop beq ((:mod &i 15) 0)) FizzBuzz beq ((:mod &i 5) 0)) Buzz beq ((:mod &i 3) 0)) Fizz goto nonCase
 label @Fizz   out "Fizz\n" goto loopEnd
 label @Buzz   out "Buzz\n" goto loopEnd
 label @FizzBuzz   out "FizzBuzz\n" goto loopEnd
 label @nonCase   out &i   out "\n"
 label @loopEnd   give &i 1   bleq &i 100 loop  return

BuzzFizz

if max\$a: # do nothing
else: # do nothing

$a++
if 3\$a: print "Fizz"
if 5\$a: print "Buzz"
else: print $a
print "\n"

if max\$a: # do nothing
else: loop

C

#include <stdio.h>
int main(void)
{
    int i;
    for(i=1; i<=100; i++)
    {
        if((i%15)== 0)//improved from "(i%3)&&(i%5)"
            printf("FizzBuzz\n");
        else if((i%3)==0)
            printf("Fizz\n");
        else if((i%5)==0)
            printf("Buzz\n");
        else
            printf("%d\n",i);
    }
    return 0;
}

A more cleaned up version:

#include <stdio.h>

int main () {
	char *fizz;
	char *buzz;
	for (int i = 1; i <= 100; i++) {
		fizz = (i % 3 == 0) ? "Fizz" : ""; // Fizz on 3's
		buzz = (i % 5 == 0) ? "Buzz" : ""; // Buzz on 5's
		if (i % 3 == 0 || i % 5 == 0) {
			printf("%s%s\n", fizz, buzz);
		} else {
			printf("%d\n", i)
		}
	}
	return 0;
}

Chinese

定义 甲 为 整数, 赋值为 1
重复执行直到 (甲 < 100) 不满足
{
    如果 (甲 取模 3 等于 0) 则: 
    {
        打印 "Fizz"
    }
    如果 (甲 取模 5 等于 0) 则:
    {
        打印 "Buzz"
    }
    如果 (甲 取模 3 不等于 0 且 甲 取模 5 不等于 0) 则:
    {
        打印 甲
    }
    打印 "\n"
}


DIVSPL

1..100
Fizz=3
Buzz=5

Empty

Sl+∅1^∅TlTfTuTiM∅5^∅4+∅5^∅4+∅5^∅;∅f∅7;∅8^∅iSf#Fizz:∅7;∅8^∅nSiM∅5^∅4+∅5^∅4+∅5^∅4+∅5^∅4+∅5^∅;∅b∅7;∅8^∅uTbSb"B+uzz:∅7;∅8^∅nSu:#TnSn
∅9^∅9•∅l

Fizzbuzz


Fzzbzz

<1/3=fizz,5=buzz/100>

GotoScript

# Variables
1 max := 100
2 n := 0
3 to_print := ""

# Conditionals
4 GOTO 8 IF n % 15 = 0
5 GOTO 9 IF n % 3 = 0
6 GOTO 10 IF n % 5 = 0

# Print options
7 to_print := n
8 to_print := 'FizzBuzz'
9 to_print := 'Fizz'
10 to_print := 'Buzz'

# Output
11 GOTO 12 WHEN to_print != ""
12 PRINT to_print

# Continue loop
13 n += 1
14 GOTO 3

# End loop
15 GOTO WHEN n > max

Lazy K

`k```````ssi`s``s`ks``s`k`s`k``s```sss`k``s`k`s`kss`k```ss`s``s``si`kk`k`k`sk`kk``s``s`ks``s
`k`s`k``s`k``s`k``s`ks`s`k``s`k``s`k``s`ks`s`k``s`k```s``s`ks````s``s``s`s`s`sii`k```sss`k`s
`ks``sis``s`ksk``s`k`s`kk```s``s`ks``s`k`s`k``s`ks`s`k``s`ks`sisi`k``s`kk``s``s``s```s`s``s`
ks`s````ssi`s`k`s``s`ks``s`k`s``s``si`k`k`sk`kkk``s```si``ss`sk`s`k``s`ksk`k``s`k`s``s`ks``s
`k`sik``s`kkkk```ss``s``ss`sk``ss``ss```ss`ss``ss`sk``s`ksk`k```si``s`s```sik`s`k``s``s`kski
``s`s`s```s`sis``s`ksk`sk`s``s`ksk`k```s``s`s`k``ssk```ssk`````ssk`s``s`ksk`s`s`siii`s``s`ks
k`k`sk``s`k`s`k`s`kk``s``s`ks`s`k``s`ks``s`kk``s`ks``s`k`sik`k``s`k`s`kk````ssi`s`k`s``s`ks`
`s`k`s``s``si`k`k`k`k`sk`kkk``s`k`s`k``ss`k``si`k`sk``s```si``ss`sk`s`k``s`ksk`k``s`k``s`k`s
``s`k``s`ks``s`k`sik``s`k`````ssi`s`k`s``s`ks``s`k`s``s``si`k`k`sk`kkk``s`s`k`s`k``s`k``s`k`
s`k`s``s`ksk``ss`k``s``ss`kk`skki```s`s``s`k``s`ksk``s``sski```sski`s``s`ksk``s``ss`sk`kkkk`
`s``s``s```s`s``s`ks`s````ssi`s`k`s``s`ks``s`k`s``s``si`k`k`sk`kkk``s```si``ss`sk`s`k``s`ksk
`k``s`k`s``s`ks``s`k`sik``s`kkkk```ss``s``ss`sk``ss``ss```ss`ss``ss`sk``s`ksk`k```si``s`s```
sik`s`k``s``s`kski``si``s``ssi```sski`s``s`ksk`k`````s``sssk`s``s`ksk`s`s`s`s``s`kski`k`sk``
s`k`s``si`k````s`sss`k`s``s`ksk``s``s`kskik``ss`k``si`k``s``s`ks``s`k`s``s``si`k`k`sk`kk``s`
k`s``s`ks``s`k`sik``s`kkk``s``s`ks``s`k``s```sik```ss`ss`kk``s`ks``s`k`sik``s`k`s`s`kkk`k``s
``ss`kk`skk``ss`k``si`k``s``s`ks``s`k`s``s``si`k`k`sk`kk``s`k`s``s`ks``s`k`sik``s`kkk``s``s`
ks``s`k``s```sik```ss`ss`kk``s`ks``s`k`sik``s`k`s`s`kkk`k``s``ss`kk`skk``s``s`ks``s`s`kki`k`
```ssi`s`k`s``s``s``si`k`k`k`k`sk`kk`k``s``si`k``s``si`k``s`s`kk`k`sk`k``````s``s`kssi`s``s`
kski``s`k`s`s`kkk`sk`k`sk``s``s`ks``s`kk``s`k`s``s``s`ks``s``s``s``ss`sk`kk`k`k`sk`kkk``s`k`
s``s`s`k``s``s`ks``s`kk``s`ks``s`k`sik`kk`kk``s``s`ks``s`s`kki`k``si`k`sk`k``s``s`k``s`ks``s
`k`sik``s``si`kk`k``s``s`ks``s`k`s``s``si`k`k`sk`kk``s`k`s``s`ks``s`k`sik``s`kkk``s``s`ks``s
`k``s```sik```ss`ss`kk``s`ks``s`k`sik``s`k`s`s`kkk`k``s``ss`kk`sk``s`s`kk`k`sk`k``s`kkk`k`k`
k``s``s``si`kk`k`k`sk`kk``s``si`k``s``si`k``s`s`kk`k`sk`k``````s``s`kssi`s``s`kski``s`k`s`s`
kkk`sk`k`sk``s``ss`sk`k``s`s`kk`k`sk``s``si`k``s`s`kk`k`sk`k````ss``ss``ss`ks`s`k`s`s`kkk

Shorter, but slower version:

`k`````ssi`s``s`ks``s`k`s`k``s``s``s``s`k``s``s`ks``s`k`s`k``s`ks`s`k````sss`k``s`k`s`kss`s`
k``s``s``si`k``s`k```ss`s`sisk`k`k`sk`kk``s``s`ks``s`k`s`k``s`ks`s`k``s`k``s`k````sss`k``s`k
`s`kss`s`k``s``s``si`k````s``ssks`s``s`kski`k`k`sk`kkkk``s`k`s``s`ksk``s`kk``s`k`sik```ss``s
s``ss`k``s`k`sik`k`s`kk``s`kk``s`k`s``s``s`ks`s`k``s`k``s`k````sss`k``s`k`s`kss`s`k``s``s``s
i`k````s``ssks`s``s`kski`k`k`sk`kkkk`k``s`k`s``s`ks``s`k`s````ssi````sss`k``s`ks``s`kks``s``
s`ks``s``s`s`k`s``ss`k``si`k``````ss`ss``ss`sk``s`ksk``s`k`sik`k`sk`k``s`k`sik`k`kk``s`k``s`
`s`ks``s`kk``s`ks``s`k`sik`kk```s``s`sii```ssk`s``s`ksk``s``s`kski``s``s`ks````sik``s`ks`s`k
``s`ksk``s``s`ks``s`s`kki`k``s``s``si`k``si`k`sk`k``````ssi`s`k`s``s`ks``s`k`si``s```sik```s
s`ss`kk``s`ks``s`k`sik``s`s```ssk`k`s``s`kski`sk````s`sss`k`s``s`ksk``s``s`kski`kk`k``s`k`s`
s`k``s`s`k``s`k``s``s`ks``s`kk``s`ks``s`k`sik`kk```s``s`sii```ssk`s``s`ksk``s``s`kski`k````s
`sss`k`s``s`ksk``s``s`kskikk``s`kkkk``s`k`s``si`k````s`sss`k`s``s`ksk``s``s`kskik`k``s``s``s
```s`s``s`ks`s````ssi`s`k`s``s`ks``s`k`s``s``si`k`k`sk`kkk``s```si``ss`sk`s`k``s`ksk`k``s`k`
`s`k`s``s`ks``s`k`sikkkk```si``s`s`k``s`s`ssk``si``s`si```sski`s``s`ksk`k```si``s``s``s`k``s
ssk`s`k``s``s`kski``s`s`si`sk`s``s`ksk`k```s``s``s`sis``ss``s`kk``ss`sk``ss``s`k``s`s`s``ssk
`sks``s`ksk`k`sk`k``s``s``s```s`s``s`ks`s````ssi`s`k`s``s`ks``s`k`s``s``si`k`k`sk`kkk``s```s
i``ss`sk`s`k``s`ksk`k``s`k``s`k`s``s`ks``s`k`sikkkk```si``s`s`k``s`s`ssk``si``s`si```sski`s`
`s`ksk`k```ss``s```sik`s`k``s``s`kski``ss``ss```s`ssk``s`k```ss`s`sisk``s`ksk`k`````s``sssk`
s``s`ksk`s`s`s`s``s`kski`k`sk`k``s`k``ss`k```si`s`k`s```s`s```ssi`s``s`ks``s`k`s`k```sss`ks`
`s`k`s``s`ks``````s`s`s`sii``s`ksk`s``s``si`k``s`k`sik`k`k`skk``s``si`k``s`k`sik`k`kk`````ss
s`k``s`ks``s`kks``s```sik```ss`ss`kk``s`ks``s`k`sik``s`s```ssk`k`s``s`kskik`k`sk``sii````sss
``s`s`ks`k``si`k`sk`k`kk``s`s```ssk`k`s``s`kski`ski

It's probably not correct to speak of Lazy K program being slower or faster than the other one due to the nature of Lazy K and combinator calculus in general. Both functions are equivalent (in some way) because both ignore their arguments and return the same constant (infinite Church list of Church numerals that represents the only valid output of FizzBuzz program). Probably, the closest analogy is two infinite series that converge to the same value.

Mathematics

(i.e. "Fizz")

(i.e. "Buzz")

gives

[1, 2, -4122, 4, -8022, -4122, 7, 8, -4122, -8022, 11, -4122, 13, 14, -41228022, 16, ...]

Python equivalent:

from math import floor, ceil
phi = -4122
beta = -8022
fb = lambda x: x * ceil(x/3 - x//3) * ceil(x/5 - x//5) + beta * (1 + floor(x//5 - x/5)) + phi * (1 + floor(x//3 - x/3)) * (1 + (1 + floor(x//5 - x/5)) * 9999)
[fb(i) for i in range(1, 31)]

MoreMathRPN

repeat 50
>>> 0
1
>> 1
3
%
step
4
*
jmp ]0
*
outputS "Fizz"
jmp 2
del 0
>> 1
5
%
step
4
*
jmp ]0
*
outputS "Buzz"
jmp 2
del 0
2
*
jmp ]0
jmp 3
-> 1
outputV
jmp 2
del 0
del 0
outputS ", "
next

Muriel

S:"\"S:\\\"\"+|S+\"\\\";\\ni:\"+$(i+(f=3))+\";a:\"+$((i*(f=0))+((a-(3*(a>2)))*(f=1))+(a*((f=2)+(f=3))))+\";b:\"+$((i*(f=0))+((b-(5*(b>4)))*(f=2))+(b*((f=1)+(f=3))))+\";f:\"+$((f=0)+((2-(a>2))*(f=1))+((3-(b>4))*(f=2)))+\";\\n.(%\\\"Fizz\\\",0,4*(f=3)*(a=0))+(%\\\"Buzz\\\",0,4*(f=3)*(b=0))+(%$i,0,#$i*(f=3)*(a=0=0)*(b=0=0))+(%\\\"\\\\n\\\",0,(f=3));\\nT:\"+S+\";\\n@%T,0,(&T*(101>i))\"";
i:1;a:1;b:1;f:0;
.(%"Fizz",0,4*(f=3)*(a=0))+(%"Buzz",0,4*(f=3)*(b=0))+(%$i,0,#$i*(f=3)*(a=0=0)*(b=0=0))+(%"\n",0,(f=3));
T:"S:\""+|S+"\";\ni:"+$(i+(f=3))+";a:"+$((i*(f=0))+((a-(3*(a>2)))*(f=1))+(a*((f=2)+(f=3))))+";b:"+$((i*(f=0))+((b-(5*(b>4)))*(f=2))+(b*((f=1)+(f=3))))+";f:"+$((f=0)+((2-(a>2))*(f=1))+((3-(b>4))*(f=2)))+";\n.(%\"Fizz\",0,4*(f=3)*(a=0))+(%\"Buzz\",0,4*(f=3)*(b=0))+(%$i,0,#$i*(f=3)*(a=0=0)*(b=0=0))+(%\"\\n\",0,(f=3));\nT:"+S+";\n@%T,0,(&T*(101>i))";
@%T,0,(&T*(101>i))

Python 3

for i in range(1,101):
	if i%3==0:
		print("Fizz",end="")
	if i%5==0:
		print("Buzz",end="")
	if i%3 and i%5:
		print(i,end="")
	print()

Satarcrimp

KW)(C$ki9kuhm4otjy[90ju{)($%K)W($LV:}
IMW$(C}MTW{#IJT
W$ FIZZBUZZ![0u,IWL_
VL
_L{
Li0
[MSI)
NTSIRP<SROPHI8op94769y8oUW)_KV}_$LVW)4]


Standard modern vernacular

定义整型变量 A ,然后初始化为 1 。
重复执行以下代码块直到 A <= 100 这个条件不满足为止:
    如果 A%3=0 则:
        输出"Fizz"。
    如果 A%5=0 则:
        输出"Buzz"。
    如果 A%3!=0 且 A%5!=0 则:
        输出 A 。
    输出一个换行符。
    将 A 加上 1。

Stringle

i "!"
f "!"
b "!"
z 1
z
p ""
#f 3 p "Fizz"
#f 3 f ""
#b 5 p p "Buzz"
#b 5 b ""
#p !0 $ p
#p 0 $ #i
#i +100 z 0
i i "!"
f f "!"
b b "!"
z

TeX

\newcount\-\let~\advance\day0\loop~\-1~\day1~\mit\ifnum\-=3\-0Fizz\fi\ifnum\fam=5Buzz\rm\fi\ifvmode\the\day\fi\endgraf\ifnum\day<`d\repeat\bye

Thue

FizBuzz in Thue by Amb ::=
>t|::=t>
>f|::=f>
>|::=|>
>tf::=t||>fF
>f?::=f||||>?B

F|::=|F
F?::=?F

>?n::=?n>pp[sp]
>?Fn::=?n>[fi[sp]zz]
>?Bn::=?n>[bu[sp]zz]
>?BFn::=?n>[fizz[sp]buzz]
[sp]::=~ 
[fizz]::=~Fizz
[buzz]::=~Buzz
[fizzbuzz]::=~FizzBuzz

pp0::=0p[0]p
pp1::=1p[1]p
pp2::=2p[2]p
pp3::=3p[3]p
pp4::=4p[4]p
pp5::=5p[5]p
pp6::=6p[6]p
pp7::=7p[7]p
pp8::=8p[8]p
pp9::=9p[9]p
[0]::=~0
[1]::=~1
[2]::=~2
[3]::=~3
[4]::=~4
[5]::=~5
[6]::=~6
[7]::=~7
[8]::=~8
[9]::=~9
pp$::=$

>0::=0>
>1::=1>
>2::=2>
>3::=3>
>4::=4>
>5::=5>
>6::=6>
>7::=7>
>8::=8>
>9::=9>
>$::=+$

0+::=-1
1+::=-2
2+::=-3
3+::=-4
4+::=-5
5+::=-6
6+::=-7
7+::=-8
8+::=-9
9+::=+0
0-::=-0
1-::=-1
2-::=-2
3-::=-3
4-::=-4
5-::=-5
6-::=-6
7-::=-7
8-::=-8
9-::=-9
n+::=<n1
n-::=<n

?<::=<?
f<::=<f
t<::=<t
|<::=<|
^<::=^>

::=
^>t||f||||?n1$

another by User: Jan jelo

o0::=~0
o1::=~1
o2::=~2
o3::=~3
o4::=~4
o5::=~5
o6::=~6
o7::=~7
o8::=~8
o9::=~9

0[<0]::=0[3>]
1[<0]::=[<1]1
2[<0]::=2[3>]
3[<0]::=3[3>]
4[<0]::=4[3>]
5[<0]::=5[3>]
6[<0]::=6[3>]
7[<0]::=7[3>]
8[<0]::=8[3>]
9[<0]::=9[3>]
|[<0]::=|[3>]

0[<1]::=[<2]0
1[<1]::=1[3>]
2[<1]::=2[3>]
3[<1]::=3[3>]
4[<1]::=4[3>]
5[<1]::=5[3>]
6[<1]::=6[3>]
7[<1]::=7[3>]
8[<1]::=8[3>]
9[<1]::=9[3>]
|[<1]::=|[3>]

0[<2]::=0[3>]
1[<2]::=[Halt]1
2[<2]::=2[3>]
3[<2]::=3[3>]
4[<2]::=4[3>]
5[<2]::=5[3>]
6[<2]::=6[3>]
7[<2]::=7[3>]
8[<2]::=8[3>]
9[<2]::=9[3>]
|[<0]::=|[3>]

[3>]0::=0[3>]
[3>]1::=1[3>]
[3>]2::=2[3>]
[3>]3::=3[3>]
[3>]4::=4[3>]
[3>]5::=5[3>]
[3>]6::=6[3>]
[3>]7::=7[3>]
[3>]8::=8[3>]
[3>]9::=9[3>]
[3>]|::=[<4]|

0[<4]::=[<4]0
1[<4]::=[<4]1[*>]
2[<4]::=[<4]2[*>][*>]
3[<4]::=[<4]3[*>][*>][*>]
4[<4]::=[<4]4[*>][*>][*>][*>]
5[<4]::=[<4]5[*>][*>][*>][*>][*>]
6[<4]::=[<4]6[*>][*>][*>][*>][*>][*>]
7[<4]::=[<4]7[*>][*>][*>][*>][*>][*>][*>]
8[<4]::=[<4]8[*>][*>][*>][*>][*>][*>][*>][*>]
9[<4]::=[<4]9[*>][*>][*>][*>][*>][*>][*>][*>][*>]
|[<4]::=|[5>]

[*>]0::=0[*>]
[*>]1::=1[*>]
[*>]2::=2[*>]
[*>]3::=3[*>]
[*>]4::=4[*>]
[*>]5::=5[*>]
[*>]6::=6[*>]
[*>]7::=7[*>]
[*>]8::=8[*>]
[*>]9::=9[*>]
[*>]|::=|*

Fizz::=~Fizz

[5>]0::=0[5>]
[5>]1::=1[5>]
[5>]2::=2[5>]
[5>]3::=3[5>]
[5>]4::=4[5>]
[5>]5::=5[5>]
[5>]6::=6[5>]
[5>]7::=7[5>]
[5>]8::=8[5>]
[5>]9::=9[5>]
[5>]|***::=[5>]|
[5>]||::=Fizz[<6]||
[5>]|*|::=[<7]||
[5>]|**|::=[<7]||

Buzz::=~Buzz

0[<6]::=0Buzz[<8]
1[<6]::=1[<8]
2[<6]::=2[<8]
3[<6]::=3[<8]
4[<6]::=4[<8]
5[<6]::=5Buzz[<8]
6[<6]::=6[<8]
7[<6]::=7[<8]
8[<6]::=8[<8]
9[<6]::=9[<8]

0[<7]::=0Buzz[<8]
1[<7]::=1[<9]
2[<7]::=2[<9]
3[<7]::=3[<9]
4[<7]::=4[<9]
5[<7]::=5Buzz[<8]
6[<7]::=6[<9]
7[<7]::=7[<9]
8[<7]::=8[<9]
9[<7]::=9[<9]

0[<8]::=1[11>]
1[<8]::=2[11>]
2[<8]::=3[11>]
3[<8]::=4[11>]
4[<8]::=5[11>]
5[<8]::=6[11>]
6[<8]::=7[11>]
7[<8]::=8[11>]
8[<8]::=9[11>]
9[<8]::=[<8]0
|[<8]::=|0[<8]

0[<9]::=[<9]0
1[<9]::=[<9]1
2[<9]::=[<9]2
3[<9]::=[<9]3
4[<9]::=[<9]4
5[<9]::=[<9]5
6[<9]::=[<9]6
7[<9]::=[<9]7
8[<9]::=[<9]8
9[<9]::=[<9]9
|[<9]::=|[10>]

[10>]0::=0[10>]o0
[10>]1::=1[10>]o1
[10>]2::=2[10>]o2
[10>]3::=3[10>]o3
[10>]4::=4[10>]o4
[10>]5::=5[10>]o5
[10>]6::=6[10>]o6
[10>]7::=7[10>]o7
[10>]8::=8[10>]o8
[10>]9::=9[10>]o9
[10>]|::=[<8]|

Sep::=~;

[11>]0::=0[11>]
[11>]1::=1[11>]
[11>]2::=2[11>]
[11>]3::=3[11>]
[11>]4::=4[11>]
[11>]5::=5[11>]
[11>]6::=6[11>]
[11>]7::=7[11>]
[11>]8::=8[11>]
[11>]9::=9[11>]
[11>]|::=Sep[<0]|

::=

|1[<0]||

Uiua

⍢(+1&p""&pf⨬("FizzBuzz"|"Fizz"|"Buzz"|∘)+>0◿5,×2>0◿3..|<101)1

A shorter one:

∵(&p⨬(∘|"Buzz"|"Fizz"|"FizzBuzz"))+=0◿5,×2=0◿3.+1⇡100

Vyxal

Ĥƛ3∻ı½¬*n5∻ı½∧*+n⟇

wenyan

It may output as Chinese. Fizz is replaced by 黃河流水鳴濺濺。, and Buzz is replaced by 燕山胡騎鳴啾啾。.

有數一。名之曰「戊」。恆為是。

	除「戊」以三。所餘幾何。變其。名之曰「三餘」。
	除「戊」以五。所餘幾何。變其。名之曰「五餘」。

	夫「三餘」「五餘」中有陽乎。變其。名之曰「寂」。
	若「寂」者。吾有一言。曰「戊」。書之。
	若非。
		吾有一言。名之曰「聲」。
		若「三餘」者。加「聲」以「「黃河流水鳴濺濺。」」。昔之「聲」者。今其是矣。云云。
		若「五餘」者。加「聲」以「「燕山胡騎鳴啾啾。」」。昔之「聲」者。今其是矣。云云。
		吾有一言。曰「聲」。書之。
	云云。

	若「戊」等於一百者乃止也。
	加一以「戊」。昔之「戊」者。今其是矣。
云云。

And Correct Version(If you're in Wenyan Online IDE, Please uncheck [Print Hanzi]):

有數一。名之曰「戊」。恆為是。

	除「戊」以三。所餘幾何。變其。名之曰「三餘」。
	除「戊」以五。所餘幾何。變其。名之曰「五餘」。

	夫「三餘」「五餘」中有陽乎。變其。名之曰「寂」。
	若「寂」者。吾有一言。曰「戊」。書之。
	若非。
		吾有一言。名之曰「聲」。
		若「三餘」者。加「聲」以「「Fizz」」。昔之「聲」者。今其是矣。云云。
		若「五餘」者。加「聲」以「「Buzz」」。昔之「聲」者。今其是矣。云云。
		吾有一言。曰「聲」。書之。
	云云。

	若「戊」等於一百者乃止也。
	加一以「戊」。昔之「戊」者。今其是矣。
云云。

WhatLang

¿1:101-{::3%~2*\5%~+[(:)((Buzz))((Fizz))((FizzBuzz))]\,\_@._10chr@._1+:101-}

A shorter one:

¿100 1+range@0$(::3%"Fizz"\{_""!}\5%"Buzz"\{_""!}+:~{_!})#"\n"join@.\

See also

External resources

References

  1. I. Ghory, Using FizzBuzz to find developers who grok coding. 2007. https://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/
  2. R. Braithwaite, Don't overthink FizzBuzz. http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html
  3. J. Atwood, Why can't programmers... program? https://blog.codinghorror.com/why-cant-programmers-program/