Oh! Yummy!!

プログラミングとか投資のこととかご飯のこととかを書きます。

python でFizzBuzz問題(C でナベアツ問題)

プログラミングの有名な問題のひとつに "FizzBuzz問題" がある。
1,2,3,4,5,6,7...のような数列の要素が
3で割り切れる場合は Fizz
5で割り切れる場合は Buzz
両方で割り切れる場合は FizzBuzz
と出力するような問題である。
ほしい出力は以下。

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

この問題を python で実装していきたいと思う
早速コードを書いてみた

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

これで上のような出力が得られるはずである。

もっと良いアルゴリズムがあるんだろうか?
ご存じの方は教えて下さいm(..)m

そういえばこの問題「ナベアツ問題」っていってるのどこかで見たな(笑)
実装してみますか
どうせだからC言語
3の倍数と3の付く数字の時はアホになって、5の倍数で犬になります。
ちょっと難しいな...

#include<stdio.h>

int i;
int main(void)
{
    for(i=0;i<15;i++)
    {
        if(i%15==0) printf("ワホーン!\n");
        else if(i%10==3 || i%3==0) printf("サァァン\n");
        else if(i%5==0) printf("ゴフッッツ\n");
        else printf("%d\n",i);
    }
}
//これは6でもサァァンっていうやつだな。

ナベアツさんには程遠いな...

個人的にはエド・はるみさんとか藤崎マーケットさんのネタが好きだなぁ

...以上!!