Cを勉強してみた。-fizzbuzz編2-
あえての文字列連結
fizzbuzz問題を考える時に、まず浮かぶのが
- 3で割れるとき、5で割れるとき、15で割れるときをそれぞれ考えよう
- 3で割れるときはfizzを出力して、5で割れるときはbuzzを追加したら、自動的に15で割れるときはfizzbuzzになるんじゃね?
っていう二つの方法だと思う。
てことで後者でもやってみた。sprintfの使い方が正しいかは知らない。
char fizzbuzz[9]; for(i=1; i<=100; i++) { sprintf(fizzbuzz, ""); if (i%3 == 0) { sprintf(fizzbuzz, "fizz"); } if (i%5 == 0) { sprintf(fizzbuzz, "%sbuzz", fizzbuzz); } if (i%3 != 0 && i%5 != 0) { sprintf(fizzbuzz, "%d", i); } printf("%s ", fizzbuzz); }
測定するまでもなく遅そうだけどな。