FizzBuzzのルール
- 1から順番に自然数を数えていく
- 3の倍数の時はFizzと出力する
- 5の倍数の時はBuzzと出力する
- 2と3の両方の条件に当てはまる時はFizzBuzzと出力する
- 2~4の全ての条件に当てはまらない場合はそのまま数字を出力する
私のコード
これは少し縛りを加えています。
乗算、除算、剰余算の演算子を使わない。
if文で実行される文は複文を認めない。
printf関数は2つまで
#define MAXNUM 100
main()
{
int i = 0,j = 0,k = 0;
while(i < MAXNUM)
{
++i;++j;++k;
if(j > 3)j = 0;
if(k > 5)k = 0;
if(j && k)
printf("%d\n",i);
else
printf("%s%s\n",j ? "" : "Fizz",k ? "" : "Buzz");
}
}
更に、printf関数を1つにして、main関数以外の大括弧を外してみたのがこちら
main()
{
int i,j,k;
for(i = j = k = 1;i <= 100;++i,j = j == 2 ? 0 : ++j,k = k == 4 ? 0 : ++k)
printf("%s%s%d%s\n",j ? "" : "Fizz",k ? "" : "Buzz",j && k ? i : 0,j && k ? "" : "\b ");
}
今日は後輩にもやらせてみたので、もしかしたら後でそれらのコードを載せるかもしれません。
ナベアツ専用アプリ開発?!
返信削除[...] この記事は一つ前の記事の続きです。 [...]
返信削除