2011-01-14

http://anond.hatelabo.jp/20110114231912

int main(void){

  int i;

  for(i = 1 ; i <;= 100 ; i++){

    printf("%d \0Fizz \0FizzBuzz "+("\x0A\x00\x00\x04\x00\x0D\x04\x00\x00\x04\x0D\x00\x04\x00\x00"[i%15]),i);

  }

  printf("\n");

  return 0;

}

かな?コンパイルしてないから、ミスあるかも

魔法じゃないよね。ただの、ありふれたCのプログラムだ。

これ以上FizzBuzzは短く出来ないと思われる。return 0 とか改行はぬけるっちゃぁ、抜けるけど・・・

void main(void){

  for(int i = 1 ; i <;= 100 ; i++){

    printf("%d \0Fizz \0FizzBuzz "+("\x0A\x00\x00\x04\x00\x0D\x04\x00\x00\x04\x0D\x00\x04\x00\x00"[i%15]),i);

  }

}

まぁ、限界だな・・・

void main(void) { for(int i = 1 ; i <;= 100 ; i++) printf("%d \0Fizz \0FizzBuzz "+("\x0A\x00\x00\x04\x00\x0D\x04\x00\x00\x04\x0D\x00\x04\x00\x00"[i%15]),i) ;}

うん、わけわからん

  • ヤバイのはもちろん理解しておりますので、 どうかどの辺りがヤバイと感じられるのか お教え頂けないでしょうか。 まったくこれまで発言してなかった俺が感じるところを言うと...

    • まぁ、今時は32Bitだし 100までしかFizzBuzzは回さないだろうから、動くんだろうな。 どうでもいいけど cout 書いたなら、strstreamだろうし sprintf使うならprintfだろうなぁと int main(void){ ...

      • ちなみにFizzBuzzを短くするなら、こう。printfの""はポインタである。というのをつかって\0を文字列に入れ込み、数値の演算結果で文字列をシフトする。 Buzz単体を表示したい時にはFizzBu...

    • ありがとうございます。 正直に言うと、文字列処理とか大嫌いなのでそこはググって書きました。 C++クックブックを見ると、boost::lexcal_castを使う方法がありましたが、 こんな単純なこ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん