FizzBuzz
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
どうしてプログラマに・・・プログラムが書けないのか?
C言語で書いてみる。とりあえずシンプルに。
#include "stdio.h" int main(int argc, char *argv[]) { int i; for (i = 1; i <= 100; i++) { if (i % (3 * 5) == 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; }
三項演算子で無理やり短くすると。
#include "stdio.h" int main(int argc, char *argv[]) { int i; for (i = 1; i <= 100; i++) { i % (3 * 5) ? (i % 3 ? (i % 5 ? printf("%d\n", i) : printf("Buzz\n")) : printf("Fizz\n")) : printf("FizzBuzz\n"); } return 0; }
三項演算子を使うと以下のような書き方も出来るよう。勉強になる。
2007-05-09 - tiny noises
元ネタ