パスワードを忘れた? アカウント作成
493509 journal

greenteaの日記: FizzBazz問題 4

日記 by greentea

http://blog.livedoor.jp/clausemitz/archives/50656033.html
http://blog.livedoor.jp/clausemitz/archives/50656193.html

/.内でも、つい最近見たような気がするけど、FizzBazz問題。

ある程度はプログラム書ける人のつもりだったし、できましたよ。そりゃ。

でもなぁ……
%使わずにする方法でまず思いついたのが

void fizzbazz(void)
{
        int i;
        struct foo{
                int b;
                struct foo *p;
        } fizz[3], bazz[5], *fizzp = fizz, *bazzp = bazz;

        for(i=0;i<2;i++) fizz[i].b = 0, fizz[i].p = &fizz[i+1];
        fizz[2].b = 1, fizz[2].p = &fizz[0];
        for(i=0;i<4;i++) bazz[i].b = 0, bazz[i].p = &bazz[i+1];
        bazz[4].b = 1, bazz[4].p = &bazz[0];

        for(i=1;i<=100;i++){
                if(fizzp->b && bazzp->b) printf("Fizz Bazz");
                else if(fizzp->b) printf("Fizz");
                else if(bazzp->b) printf("Bazz");
                else printf("%d", i);
                if(i < 100) printf(",");
                fizzp = fizzp->p;
                bazzp = bazzp->p;
        }
        printf("\n");
}

もうちょっと、物事を簡単に考える能力が必要みたいですorz

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...