The blog of a juvenile Geekus biologicus

Fizzbuzz

Sujet

Écrire un programme qui affiche les nombres de 1 à 199. Mais pour les multiples de 3, afficher “Fizz” au lieu du nombre et pour les multiples de 5 afficher “Buzz”. Pour les nombres multiples de 3 et 5, afficher “FizzBuzz”.

Python

for i in range(1, 200):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

Answer Set Programming

number(1..199).
token("Fizz";"Buzz";"FizzBuzz";1..199).

% Chaque nombre est associé à un seul token, soit un nombre, soit Fizz, Buzz ou FizzBuzz.
1 { value(N, T): token(T) } 1 :- number(N).

% Si le nombre est multiple de 3 et de 5, alors FizzBuzz.
value(N, "FizzBuzz") :- N\3=0 ; N\5=0 ; number(N).

% Si le nombre est multiple de 3 uniquement, alors Fizz.
value(N, "Fizz") :- N\3=0 ; N\5!=0 ; number(N).

% Si le nombre est multiple de 5 uniquement, alors Buzz.
value(N, "Buzz") :- N\3!=0 ; N\5=0 ; number(N).

% Sinon, si le nombre n'est ni multiple de 3 ni de 5, on retourne le nombre lui même.
value(N, N) :- N\3!=0 ; N\5!=0 ; number(N).

#show value/2.

OCaml

let rec fizz_buzz i n =
  if i <= n then
  let () =
  if i mod 3 = 0 && i mod 5 = 0 then
    print_endline "FizzBuzz"
  else if i mod 3 = 0 then
    print_endline "Fizz"
  else if i mod 5 = 0 then
    print_endline "Buzz"
  else Printf.printf "%d\n" i
  in fizz_buzz (i+1) n

let () = fizz_buzz 1 199

C

#include <stdio.h>

int main() {
    for (unsigned int i=1; i <= 199; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            printf("FizzBuzz\n");
        } else if (i % 3 == 0) {
            printf("Fizz\n");
        } else if (i % 5 == 0) {
            printf("Buzz\n");
        } else {
            printf("%d\n", i);
        }
    }
}

C++

#include <iostream>

int main() {
    for (unsigned int i=1; i <= 199; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            std::cout << "FizzBuzz";
        } else if (i % 3 == 0) {
            std::cout << "Fizz";
        } else if (i % 5 == 0) {
            std::cout << "Buzz";
        } else {
            std::cout << i;
        }
        std::cout << std::endl;
    }
}

Rust

fn main() {
    for i in 1..200 {
        if (i % 3 == 0 && i % 5 == 0) {
            println!("FizzBuzz");
        } else if (i % 3 == 0) {
            println!("Fizz");
        } else if (i % 5 == 0) {
            println!("Buzz");
        } else {
            println!("{}", i);
        }
    }
}

Perl

Lua

for i=1,199 do
  if i % 3 == 0 and i % 5 == 0 then
    print("FizzBuzz")
  elseif i % 3 == 0 then
    print("Fizz")
  elseif i % 5 == 0 then
    print("Buzz")
  else
    print(i)
  end
end

Julia

numbers = 1:199
function fizzbuzz(n)
    if n % 3 == 0 && n % 5 == 0
        println("FizzBuzz")
    elseif n % 3 == 0
        println("Fizz")
    elseif n % 5 == 0
        println("Buzz")
    else
        println(n)
    end
end

map(fizzbuzz, numbers)

R

sapply(1:199, function(n) {
  if (n %% 3 == 0 && n %% 5 == 0) print("FizzBuzz")
  else if (n %% 3 == 0) print("Fizz")
  else if (n %% 5 == 0) print("Buzz")
  else print(n)
})

Awk

BEGIN {
    for (i=1; i <= 199; i++) {
        if (i%3 == 0 && i%5 == 0)
            print "FizzBuzz"
        else if (i % 3 == 0)
            print "Fizz"
        else if (i % 5 == 0)
            print "Buzz"
        else
            print i
    }
}

Bash

for i in {1..199}; do
    if (( $((i % 3)) == 0 && $((i % 5)) == 0 )); then
        echo "FizzBuzz"
    elif (( $((i % 3)) == 0)); then
        echo "Fizz"
    elif (( $((i % 5)) == 0)); then
        echo "Buzz"
    else
        echo $i
    fi
done