一部実行環境がどっか行ってたりして動作しなかったり、その道の人から怒られるところもあると思います。
もくじ
- .NET IL
- A
- ActionScript
- Ada
- AiScript
- ALGOL
- Assembly
- APL
- AppleScript
- awk
- Bash
- batch
- BASIC
- bc
- C
- c3
- C++
- C#
- cat
- Carbon
- Carp
- cLay
- Clojure
- COBOL
- CoffeeScript
- CommonLisp
- Crystal
- Cyber
- cmake
- D
- Dart
- dc
- Excel
- Eiffel
- EmacsLisp
- Emojicode
- Elixir
- Erlang
- Factor
- fish
- Forth
- Haskell
- jq
- PostScript
- PowerShell
- SQL
- TeX
- vim
- Verilog
- プロデル
NET IL
fizzbuzz.il
.assembly fizzbuzz {}
.assembly extern mscorlib {}
.class public auto ansi beforefieldinit FizzBuzz extends [mscorlib]System.Object
{
.method public hidebysig static void Main() cil managed
{
.entrypoint
.maxstack 3
.locals init ([0] int32 i)
ldc.i4.1
stloc.0
br.s loop_condition
loop_start:
ldloc.0
ldc.i4 15
rem
brfalse.s print_fizzbuzz
ldloc.0
ldc.i4.3
rem
brfalse.s print_fizz
ldloc.0
ldc.i4.5
rem
brfalse.s print_buzz
ldloc.0
call void [mscorlib]System.Console::WriteLine(int32)
br.s increment
print_fizzbuzz:
ldstr "FizzBuzz"
call void [mscorlib]System.Console::WriteLine(string)
br.s increment
print_fizz:
ldstr "Fizz"
call void [mscorlib]System.Console::WriteLine(string)
br.s increment
print_buzz:
ldstr "Buzz"
call void [mscorlib]System.Console::WriteLine(string)
increment:
ldloc.0
ldc.i4.1
add
stloc.0
loop_condition:
ldloc.0
ldc.i4 100
ble.s loop_start
ret
}
.method public hidebysig specialname rtspecialname instance void .ctor() cil managed
{
.maxstack 1
ldarg.0
call instance void [mscorlib]System.Object::.ctor()
ret
}
}
どうやって目次をつければいいのか
A
fizzbuzz.a
An1WPP?!%n15OSFizzBuzz\:?!%n3OSFizz\:?!%n5OSBuzz\:On:::::OMc10An+1n
書くときはインデントを付けていた
fizzbuzz.a
An1
WPP
?!%n15
OSFizzBuzz\:
?!%n3
OSFizz\:
?!%n5
OSBuzz\:
On:::::
OMc10
An+1n
ActionScript
fizzbuzz.as
package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class FizzBuzz extends MovieClip {
public function FizzBuzz() {
var output:TextField = new TextField();
output.width = 400;
output.autoSize = TextFieldAutoSize.LEFT;
output.multiline = true;
output.wordWrap = true;
addChild(output);
var result:String = "";
for (var i:int = 1; i <= 100; i++) {
if (i % 15 == 0) {
result += "FizzBuzz\n";
} else if (i % 3 == 0) {
result += "Fizz\n";
} else if (i % 5 == 0) {
result += "Buzz\n";
} else {
result += i + "\n";
}
}
output.text = result;
}
}
}
実行がめんどくさかったです。
あと見切れているけど出力は出来てるからヨシ!
Ada
fizzbuzz.ada
with Ada.Text_IO;
use Ada.Text_IO;
procedure FizzBuzz is
begin
for I in 1 .. 100 loop
if I mod 15 = 0 then
Put_Line("FizzBuzz");
elsif I mod 3 = 0 then
Put_Line("Fizz");
elsif I mod 5 = 0 then
Put_Line("Buzz");
else
Put_Line(Integer'Image(I));
end if;
end loop;
end FizzBuzz;
微塵も覚えてない
AiScript
for (let i, 100) {
<: if (i % 15 == 0) "FizzBuzz"
elif (i % 3 == 0) "Fizz"
elif (i % 5 == 0) "Buzz"
else i
}
拡張子がわからぬ。10年くらい生まれるのが遅くて血迷った世界線のJavaScript
ALGOL
fizzbuzz.a69
BEGIN
FOR i TO 100 DO
IF i MOD 15 = 0 THEN print("FizzBuzz")
ELIF i MOD 3 = 0 THEN print("Fizz")
ELIF i MOD 5 = 0 THEN print("Buzz")
ELSE printf(($g(0)$, i))
FI;
print(newline)
OD
END
味がある
Assembly
fizzbuzz.as
section .data
fizz db 'Fizz'
fizzlen equ $-fizz
buzz db 'Buzz'
buzzlen equ $-buzz
nl db 10
section .bss
buf resb 16
section .text
global _start
_print:
push rcx
push r11
mov rax,1
mov rdi,1
syscall
pop r11
pop rcx
ret
_num:
mov rdi,buf+15
mov byte [rdi],10
mov rax,rcx
mov rbx,10
mov r12,1
.conv:
xor rdx,rdx
div rbx
add rdx,'0'
dec rdi
mov [rdi],dl
inc r12
test rax,rax
jnz .conv
mov rsi,rdi
mov rdx,r12
call _print
ret
_start:
mov rcx,1
.loop:
mov r8,0
mov rax,rcx
xor rdx,rdx
mov rbx,3
div rbx
test rdx,rdx
jne .m5
mov rsi,fizz
mov rdx,fizzlen
call _print
mov r8,1
.m5:
mov rax,rcx
xor rdx,rdx
mov rbx,5
div rbx
test rdx,rdx
jne .num
mov rsi,buzz
mov rdx,buzzlen
call _print
mov r8,1
.num:
cmp r8,1
je .nl
call _num
jmp .end
.nl:
mov rsi,nl
mov rdx,1
call _print
.end:
inc rcx
cmp rcx,101
jne .loop
mov rax,60
xor rdi,rdi
syscall
nasmです。
APL
fizzbuzz.apl
_←{⎕←('FizzBuzz' 'Fizz' 'Buzz',⍵)[(0=15 3 5|⍵)⍳1]}¨⍳100
APL 1.9です。Unicodeになって時代が追い付いた
AppleScript
fizzbuzz.applescript
repeat with i from 1 to 100
if i mod 15 = 0 then
log "FizzBuzz"
else if i mod 3 = 0 then
log "Fizz"
else if i mod 5 = 0 then
log "Buzz"
else
log i
end if
end repeat
macを持ってなかったらここで終わっていた……
awk
fizzbuzz.awk
BEGIN{
for(;++i<=100;)
print(i%15?i%5?i%3? i:"Fizz":"Buzz":"FizzBuzz")
}
たのちいね
Bash
fizzbuzz.sh
paste <(seq 100) <(yes Fizz|head -100) <(yes Buzz|head -100)|awk '{print($1%3?$1%5?$1:$3:$1%5?$2:$2$3)}'
いろんなコマンドに頼りたかった。
batch
fizzbuzz.bat
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,100) do (
set s=
set /a f=%%i%%3, b=%%i%%5
if !f!==0 set s=Fizz
if !b!==0 set s=!s!Buzz
if "!s!"=="" set s=%%i
echo !s!
)
んだこれ
BASIC
fizzbuzz.bas
For i As Integer = 1 To 100
If i Mod 15 = 0 Then
Print "FizzBuzz"
ElseIf i Mod 3 = 0 Then
Print "Fizz"
ElseIf i Mod 5 = 0 Then
Print "Buzz"
Else
Print i
End If
Next i
freebasic1.10.1を使いました。
bc
fizzbuzz.bc
for(i=1;i<=100;i++)if(i%15==0)print"FizzBuzz\n"else if(i%3==0)print"Fizz\n"else if(i%5==0)print"Buzz\n"else print i,"\n"
C
fizzbuzz.c
#include <stdio.h>
int main() {
for (int i = 1; i <= 100; i++) {
int fizz = (i % 3 == 0);
int buzz = (i % 5 == 0);
if (fizz && buzz) {
printf("FizzBuzz\n");
} else if (fizz) {
printf("Fizz\n");
} else if (buzz) {
printf("Buzz\n");
} else {
printf("%d\n", i);
}
}
return 0;
}
普通ですね。
c3
c3
fizzbuzz.c3
import std::io;
fn void main()
{
for (int i = 1; i < 101; i++)
{
if(i%15==0){
io::printn("FizzBuzz");
}else if(i%3==0){
io::printn("Fizz");
}else if(i%5==0){
io::printn("Buzz");
}else{
io::printn(i);
}
}
}
C++
fizzbuzz.cpp
#include <iostream>
#include <string>
#define FIZZBUZZ_CHECK(n) \
((n) % 15 == 0 ? "FizzBuzz" : \
(n) % 3 == 0 ? "Fizz" : \
(n) % 5 == 0 ? "Buzz" : \
std::to_string(n).c_str())
#define FIZZBUZZ_PRINT(n) std::cout << FIZZBUZZ_CHECK(n) << "\n"
#define FIZZBUZZ_10(start) \
FIZZBUZZ_PRINT(start); FIZZBUZZ_PRINT(start+1); FIZZBUZZ_PRINT(start+2); \
FIZZBUZZ_PRINT(start+3); FIZZBUZZ_PRINT(start+4); FIZZBUZZ_PRINT(start+5); \
FIZZBUZZ_PRINT(start+6); FIZZBUZZ_PRINT(start+7); FIZZBUZZ_PRINT(start+8); \
FIZZBUZZ_PRINT(start+9)
#define FIZZBUZZ_100() \
FIZZBUZZ_10(1); FIZZBUZZ_10(11); FIZZBUZZ_10(21); FIZZBUZZ_10(31); \
FIZZBUZZ_10(41); FIZZBUZZ_10(51); FIZZBUZZ_10(61); FIZZBUZZ_10(71); \
FIZZBUZZ_10(81); FIZZBUZZ_10(91)
main(){FIZZBUZZ_100();}
ちょっと血迷ってるね私
C#
fizzbuzz.cs
using System;
using System.Linq;
class Program
{
static void Main()
{
var fizzBuzz = Enumerable.Range(1, 100)
.Select(i => i % 15 == 0 ? "FizzBuzz" :
i % 3 == 0 ? "Fizz" :
i % 5 == 0 ? "Buzz" : i.ToString());
foreach (var item in fizzBuzz)
{
Console.WriteLine(item);
}
}
}
cat
fizzbuzz.txt
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
Carbon
fizzbuzz.carbon
package fizzbuzz;
import Core library "io";
fn Run()
{
var i: i32 = 1;
while (i<101) {
if (i%15==0) {
Core.PrintChar(70);
Core.PrintChar(105);
Core.PrintChar(122);
Core.PrintChar(122);
Core.PrintChar(66);
Core.PrintChar(117);
Core.PrintChar(122);
Core.PrintChar(122);
Core.PrintChar(10);
} else if (i%3==0) {
Core.PrintChar(70);
Core.PrintChar(105);
Core.PrintChar(122);
Core.PrintChar(122);
Core.PrintChar(10);
} else if (i%5==0){
Core.PrintChar(66);
Core.PrintChar(117);
Core.PrintChar(122);
Core.PrintChar(122);
Core.PrintChar(10);
} else {
Core.Print(i);
}
++i;
}
}
文字列どころか文字出力の関数が見つからなかった。carbon_toolchain-0.0.0-0.nightly.2025.07.09を使いました
Carp
fizzbuzz.carp
(use IO)
(use Int)
(defn main []
(for [i 1 101 1]
(cond
(= (mod i 15) 0) (IO.println "FizzBuzz")
(= (mod i 3) 0) (IO.println "Fizz")
(= (mod i 5) 0) (IO.println "Buzz")
(IO.println &(str i)))))
cLay
fizzbuzz.cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i = 1; i <= 100; i++) {
string s = "";
if(i % 3 == 0) s += "Fizz";
if(i % 5 == 0) s += "Buzz";
cout << (s.empty() ? to_string(i) : s) << endl;
}
return 0;
}
Clojure
fizzbuzz.clj
(defn fizzbuzz [n]
(cond
(zero? (mod n 15)) "FizzBuzz"
(zero? (mod n 3)) "Fizz"
(zero? (mod n 5)) "Buzz"
:else n))
(doseq [i (range 1 101)]
(println (fizzbuzz i)))
ハイライトあるんだ
COBOL
fizzbuzz.cbl
IDENTIFICATION DIVISION.
PROGRAM-ID. FB.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 I PIC 999.
PROCEDURE DIVISION.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 100
IF FUNCTION MOD(I,15) = 0 DISPLAY "FizzBuzz"
ELSE IF FUNCTION MOD(I,3) = 0 DISPLAY "Fizz"
ELSE IF FUNCTION MOD(I,5) = 0 DISPLAY "Buzz"
ELSE DISPLAY I
END-IF
END-PERFORM.
STOP RUN.
CoffeeScript
fizzbuzz.coffee
for i in [1..100]
if i % 15 is 0
console.log "FizzBuzz"
else if i % 3 is 0
console.log "Fizz"
else if i % 5 is 0
console.log "Buzz"
else
console.log i
時代の敗北者
CommonLisp
fizzbuzz.lsp
(dotimes (i 100)
(let ((n (1+ i)))
(cond ((zerop (mod n 15)) (format t "FizzBuzz~%"))
((zerop (mod n 3)) (format t "Fizz~%"))
((zerop (mod n 5)) (format t "Buzz~%"))
(t (format t "~D~%" n)))))
Crystal
fizzbuzz.cr
(1..100).each do |n|
case
when n % 15 == 0 then puts "FizzBuzz"
when n % 3 == 0 then puts "Fizz"
when n % 5 == 0 then puts "Buzz"
else puts n
end
end
Cyber
fizzbuzz.cy
for 1..101 -> i:
if i % 3 == 0 and i % 5 == 0:
print "FizzBuzz"
else i % 3 == 0:
print "Fizz"
else i % 5 == 0:
print "Buzz"
else:
print "$(i)"
cmake
CMakeLists.txt
foreach(i RANGE 1 100)
math(EXPR mod3 "${i} % 3")
math(EXPR mod5 "${i} % 5")
set(out "")
if(mod3 EQUAL 0)
set(out "Fizz")
endif()
if(mod5 EQUAL 0)
set(out "${out}Buzz")
endif()
if(out STREQUAL "")
set(out "${i}")
endif()
message("${out}")
endforeach()
D
fizzbuzz.d
import std.stdio;
void main() {
foreach (i; 1 .. 101) {
if (i % 15 == 0)
writeln("FizzBuzz");
else if (i % 3 == 0)
writeln("Fizz");
else if (i % 5 == 0)
writeln("Buzz");
else
writeln(i);
}
}
Dart
fizzbuzz.dart
void main() {
for (int i = 1; i <= 100; i++) {
if (i % 15 == 0) {
print('FizzBuzz');
} else if (i % 3 == 0) {
print('Fizz');
} else if (i % 5 == 0) {
print('Buzz');
} else {
print(i);
}
}
}
dc
fizzbuzz.dc
0si[[Fizz]n1sf]sF[[Buzz]n1sf]sB[lin]sN[li1+si0sfli3%0=Fli5%0=Blf0=N10Pli100>M]sMlMx
がんばった
Excel
=IF(MOD(ROW(),15)=0,"FizzBuzz",IF(MOD(ROW(),3)=0,"Fizz",IF(MOD(ROW(),5)=0,"Buzz",ROW())))
Eiffel
fizzbuzz.e
class
FIZZBUZZ
create
make
feature
make
local
i: INTEGER
do
from
i := 1
until
i > 100
loop
if i \\ 15 = 0 then
io.put_string ("FizzBuzz")
elseif i \\ 3 = 0 then
io.put_string ("Fizz")
elseif i \\ 5 = 0 then
io.put_string ("Buzz")
else
io.put_integer (i)
end
io.put_new_line
i := i + 1
end
end
end
EmacsLisp
(dotimes (i 100)
(message "%s"
(or (and (= 0 (mod (1+ i) 15)) "FizzBuzz")
(and (= 0 (mod (1+ i) 3)) "Fizz")
(and (= 0 (mod (1+ i) 5)) "Buzz")
(number-to-string (1+ i)))))
Emojicode
fizzbuzz.emojic
🏁 🍇
🔂 i 🆕⏩ 1 101❗️ 🍇
↪️ i 🚮 15 🙌 0 🍇
😀 🔤FizzBuzz🔤❗️
🍉
🙅♀️↪️ i 🚮 3 🙌 0 🍇
😀 🔤Fizz🔤❗️
🍉
🙅♀️↪️ i 🚮 5 🙌 0 🍇
😀 🔤Buzz🔤❗️
🍉
🙅♀️ 🍇
😀 🔡 i 10❗️❗️
🍉
🍉
🍉
拡張子は.🍇の説もある
Elixir
fizzbuzz.exs
1..100
|> Enum.map(fn
i when rem(i, 15) == 0 -> "FizzBuzz"
i when rem(i, 3) == 0 -> "Fizz"
i when rem(i, 5) == 0 -> "Buzz"
i -> Integer.to_string(i)
end)
|> Enum.each(&IO.puts/1)
Erlang
fizzbuzz.erl
-module(fizzbuzz).
-export([main/0]).
main() ->
lists:foreach(fun fizzbuzz/1, lists:seq(1, 100)).
fizzbuzz(N) ->
io:format("~s~n", [case {N rem 3, N rem 5} of
{0, 0} -> "FizzBuzz";
{0, _} -> "Fizz";
{_, 0} -> "Buzz";
_ -> integer_to_list(N)
end]).
Factor
fizzbuzz.factor
USING: io math sequences prettyprint ;
1 100 [a..b] [
{
{ [ dup 15 mod zero? ] [ drop "FizzBuzz" ] }
{ [ dup 3 mod zero? ] [ drop "Fizz" ] }
{ [ dup 5 mod zero? ] [ drop "Buzz" ] }
[ number>string ]
} cond
print
] each
fish
fizzbuzz.fish
for i in (seq 1 100)
if test (math "$i % 15") -eq 0
echo "FizzBuzz"
else if test (math "$i % 3") -eq 0
echo "Fizz"
else if test (math "$i % 5") -eq 0
echo "Buzz"
else
echo $i
end
end
シェルの方
Forth
: fizzbuzz 101 1 do
i 15 mod 0= if ." FizzBuzz " else
i 3 mod 0= if ." Fizz " else
i 5 mod 0= if ." Buzz " else
i . then then then cr loop ;
fizzbuzz
Haskell
fizzbuzz.hs
putStr $ unlines $ map (\n -> let f = take (4 * (1 - signum (n `mod` 3))) "Fizz"; b = take (4 * (1 - signum (n `mod` 5))) "Buzz"; fb = f ++ b in [show n, fb] !! signum (length fb)) [1..100]
jq
range(1;101)|if .%15<1 then "FizzBuzz" elif .%3<1 then "Fizz" elif .%5<1 then "Buzz" else . end
PostScript
fizzbuzz.ps
%!PS-Adobe-3.0
1 1 100 {
dup 15 mod 0 eq {
pop
(FizzBuzz) ==
} {
dup 3 mod 0 eq {
pop
(Fizz) ==
} {
dup 5 mod 0 eq {
pop
(Buzz) ==
} {
==
} ifelse
} ifelse
} ifelse
} for
PowerShell
fizzbuzz.ps1
1..100|%{
$r=@('Fizz')[$_%3-ne0]+@('Buzz')[$_%5-ne0]
if($r){$r}else{$_}
}
SQL
WITH RECURSIVE n(x) AS (SELECT 1 UNION ALL SELECT x+1 FROM n WHERE x<100)
SELECT CASE WHEN x%15=0 THEN 'FizzBuzz' WHEN x%3=0 THEN 'Fizz' WHEN x%5=0 THEN 'Buzz' ELSE x END FROM n;
TeX
fizzbuzz.tex
\def\print#1{\immediate\write16{#1}}
\newcount\i
\newcount\tmp
\newcount\modthree
\newcount\modfive
\i=1
\loop \ifnum \i<101
\modthree=\i \tmp=\i \divide\tmp by 3 \multiply\tmp by 3 \advance\modthree by -\tmp
\modfive=\i \tmp=\i \divide\tmp by 5 \multiply\tmp by 5 \advance\modfive by -\tmp
\ifnum \modthree=0 \ifnum \modfive=0 \print{FizzBuzz}\else \print{Fizz}\fi \else \ifnum \modfive=0 \print{Buzz}\else \print{\the\i}\fi \fi
\advance\i by 1 \repeat
\end
vim
100o<Esc>gg2jqqAFizz<Esc>3jq32@qgg4jqqABuzz<Esc>5jq19@q:%s/^$/\=line('.')<CR>
Verilog
fizzbuzz.v
module fizzbuzz_tb;
integer i;
initial begin
for (i = 1; i <= 100; i = i + 1) begin
case ({i % 15 == 0, i % 3 == 0, i % 5 == 0})
3'b100: $display("FizzBuzz");
3'b010: $display("Fizz");
3'b001: $display("Buzz");
default: $display("%0d", i);
endcase
end
$finish;
end
endmodule
プロデル
1から100まで現在位置に1ずつカウントしながら繰り返す
もし現在位置を15で割った余りが0なら
「FizzBuzz」と表示
他でもし現在位置を5で割った余りが0なら
「Buzz」と表示
他で現在位置を3で割った余りが0なら
「Fizz」と表示
そうでなければ現在位置を表示
もし終わり
繰り返し終