こんなんでモチベーション上がんのかよ を発端にFizzBuzzぷち祭りの様相♪
なんかの参考になれば、と思考の過程をまとめておきます。
【問題】
1から100までの数を表示するプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
問題を眺めて最初に浮かんだのは"多分岐":ああ、4通りに分かれんのねと。
多分岐がイメージできたら3秒後には脳内コーディング開始:
for ( i = 1 ~ 1000 ) {
switch ( f(i) ) {
case 3の倍数: "Fizz"
case 5の倍数: "Buzz"
case どっちも: "FizzBuzz"
case それ以外: i
}
}
んでもって各case条件に見合う f(i) を考えればいい。
→ 分岐条件を決定するファクタは 3で割れるか / 5で割れるか のふたつだけ
→ それぞれの true/false に応じて4つに分けりゃえぇ
→ 00, 01, 10, 11 → 0, 1, 2, 3 ... デキター♪
# こっからヒネクレ始めて
→ 0から始まる連番になってんね
→ 配列の要素にマップできるよねー...ヨッシャー♪
なんてな段取りだったんじゃないかな、改めて思うに。
不思議なくらい if ... else ... による多段の2分岐はアタマん中にありませなんだ。
ちらりと浮かんだんだけど"ダメ!そっち行っちゃダメ!"と引き戻す奴が現れまして。
プログラマの本能? 勘?
よくわかんないけど、この感覚って経験/場数によって磨かれるもんだと思う。