5月12日、Fizz-Buzz問題を考える


という記事が面白くて、思わず読み言ってしまったわけですよ。
プログラマ志望の人はぜひ一度読んでみて欲しい文章ですね。

記事の内容は読んでもらうほうが早いとして、この記事の中に出てくるのがFizz-Buzz問題です。
Fizz-Buzz問題とは、『1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。』というもの。
ちゃんとしたプログラマなら2分とかからずにコードを書き出せるはずとのこと。

んで、私もやってみました。
2分はかかったかもしれないけど、5分はかかってない。
ちょっと雑で無駄の多いプログラムですけど。


#include <stdio.h>

void main()
{
int i;

for(i=1; i<=100; i++){
if*1{
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;
}


こんな感じで、一応すんなり書けました。

この記事に付けられたコメントを見ると、いろんな人が書いた解答があります。
いろんな人が、いろんな言語、いろんな書き方で書いたプログラムを見るのはなかなか勉強になりますね。

*1:i%3==0) && (i%5==0