ぼく用あれこれまとめ
FizzBuzzテスト
最終更新:
bokuyo
-
view
FizzBuzzテスト
- FizzBuzzテストを知らない方は、まずはお手持ちのエディタorIDEを開き、時計を用意してください。
- 下の記事中にFizzBuzzテストなるものがでてきます。チャレンジしてみてください。
- どうしてプログラマに・・・プログラムが書けないのか?
- この記事の中で出てくる面白いFizzBuzzテストについてまとめます。
ぼくがかんがえたFizzBuzzプログラム(C++)
#include <iostream> int main() { for(int i = 1; i <= 100; ++i) { if(i%3 == 0 && i%5 == 0){ std::cout << "FizzBuzz"; } else if(i%3 == 0 ){ std::cout << "Fizz"; } else if(i%5 == 0){ std::cout << "Buzz"; } else { std::cout << i; } std::cout << std::endl; } return 0; }
- 最初はFizzとBuzzとiを処理する3状態だけ書こうとしたけれど、うまくFizzBuzzを表示する書き方ができなくて思わず直書き。
- だいたい3分くらい。問題読むのいれたら4分くらい。実行は3回やってみた。
- たぶん敗因は、if-elseに執拗にこだわりすぎてるところかなーと。柔軟じゃないね。
あとでかんがえたC++でFizzBuzzテスト答案。
#include <iostream> int main() { for(int i = 1; i <= 100; ++i) { if(i%3 != 0 && i%5 != 0){ std::cout << i; } if(i%3 == 0 ){ std::cout << "Fizz"; } if(i%5 == 0){ std::cout << "Buzz"; } std::cout << std::endl; } return 0; }
- if文と、ループの動きを理解できてるかどうかってのが大きくわかれるのかな。
条件式(i%3 != 0 && i%5 != 0)について
- (i%3 != 0 || i%5 != 0)、はうまくいかない。
- if(!(i%3 == 0 && i%5 == 0))、これはうまくいかない。
- if(i%15 != 0)、これもうまくいかない。
- 3を15で割ると、「商:0、あまり3」だから。
- 論理式を理解できてるかどうかがすぐわかる。
golf的な短いの。(C++編)
#include<ios> int a;int main(){for(;++a<100;){printf(a%3?a%5?"%d":"":"Fizz",a);puts(a%5?"":"Buzz");}}
- これより短いの頼みます。
いろいろ思うこと
- わかってるようでわかってないことがわかった。