« コマンド:systeminfo | トップページ | アンチウィルスソフトくらいはインストールしておくべきかと・・・ »

2008/02/14

FizzBuzz問題

1年くらい前に話題になったFizzBuzz問題を取り上げてみたいと思います。FizzBuzzは英語圏の遊びで、ルールは次のようになっています。

最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「Fizz」、5で割り切れる場合は 「Buzz」、両者で割り切れる場合は 「Fizz Buzz」 を数の代わりに発言しなければならない。発言を間違えた者やためらった者は脱落となる。[Wikipedia]

そして、FizzBuzz問題とは

このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードがかけないプログラマ志願者を見分ける手法を Jeff Atwood が FizzBuzz問題 (FizzBuzz Question)として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている[Wikipediaより抜粋]

つまり、「数分でFizzBuzzのプログラムが作れないならプログラマを志願するな」ということです。これはプログラマを志願する私としては放っておけなかったので挑戦してみました。

特にカッコいいことをしようとしなければすぐにできます。

#include <stdio.h>

int main(void)
{
  int i;
  for(i=1 ; i<=100 ; 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;
}

elseを使わずに書くとこんなのかな。

int main(void)
{
  int i;
  for(i=1 ; i<=100 ; i++){
    if(i%3 == 0)
      printf("Fizz");
    if(i%5 == 0)
      printf("Buzz");
    if(i%3 != 0 && i%5 != 0)
      printf("%d", i);
    printf("\n");
  }
  return 0;
}

|

« コマンド:systeminfo | トップページ | アンチウィルスソフトくらいはインストールしておくべきかと・・・ »

Programming」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/222903/40118915

この記事へのトラックバック一覧です: FizzBuzz問題:

« コマンド:systeminfo | トップページ | アンチウィルスソフトくらいはインストールしておくべきかと・・・ »