いろいろな言語でFizzBuzz

3分ぐらいでわかるいろいろな言語のFizzBuzz

FizzBuzz問題

社内勉強会でライトニングトークのネタを披露したいろいろな言語でFizzBuzz。
なんとなくもったいないので公開。

FizzBuzz問題とは

1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに fizz と、5 で割り切れるなら buzz と言うゲーム。3 でも 5 でも割り切れる場合は、fizzbuzz の順に言う。

Perlまではなんとか自力でいけたよママン!!

PHP

$MAX_NUMBER = 100;
for ( $i = 1; $i <= $MAX_NUMBER; $i++ )
{
    $fizzbuzz = "";
    if ( 0 == ($i % 3) ) { $fizzbuzz .= "fizz"; }
    if ( 0 == ($i % 5) ) { $fizzbuzz .= "buzz"; }

    if ( '' !== $fizzbuzz ) {
        printf("%s\n", $fizzbuzz);
    }
    else {
        echo $i."\n";
    }
}

Python

MAX_NUMBER = 100
count = 1
while count <= MAX_NUMBER:
    num_fizzbuzz = ''
    if 0 == count % 3 :
        num_fizzbuzz = 'fizz'
    if 0 == count % 5 :
        num_fizzbuzz = num_fizzbuzz + 'buzz'

    print str(count) + ':' + num_fizzbuzz
    count += 1 

C

#include<stdio.h>
#define MAX 100

int main()
{
    int i;
    for (i = 1; i <= MAX; i++)
    {
        if ((i % 15) == 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); }
    }
    return 0;
} 

Ruby

1.upto(100){ |i|
    if i % 15 == 0 
        puts "fizzbuzz"
    elsif i % 3 == 0
        puts "fizz"
    elsif i % 5 == 0
        puts "buzz"
    else
        puts i
    end
}

Perl

$MAX = 100;

for ($i=1; $i<=$MAX; $i++)
{
    if ($i % 15 == 0) {
        print "fizzbuzz\n";
    }
    elsif ($i % 3 == 0) {
        print "fizz\n";
    }
    elsif ($i % 5 == 0) {
        print "buzz\n";
    }
    else {
        print $i . "\n";
    }
}

R

おいおいRでfizzbuzzなんてできるのかよ!! と思ったらできてました。
参考: http://d.hatena.ne.jp/Rion778/20120218/1329529912

for(i in 1:100)
{
    if ( (i %% 15 == 0) ) {
        cat("fizzbuzz\n")
    }
    else if ( (i %% 3 == 0) ) {
        cat("fizz\n")
    }
    else if ( (i %% 5 == 0) ) {
        cat("buzz\n")
    }
    else {
        cat(i, "\n")
    }
}

Brainf@ck

http://vipprog.net/wiki/first.html
プログラミングスレまとめ in VIPより引用

もう訳が分かりません。

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

コメントを残す