ぼく用あれこれまとめ

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");}}
  • これより短いの頼みます。

いろいろ思うこと

  • わかってるようでわかってないことがわかった。

参考文献

記事メニュー
目安箱バナー