【cmd】コマンドプロンプトでFizzBuzz
オープンソースカンファレンス2013の、USP研究所のセッション(https://www.ospn.jp/osc2013-spring/modules/eguide/event.php?eid=55)に触発されまして。
ということで、書いていきます。※Windows7 64bitの、組み込みのコマンドだけを使用
まず、ただのリストを作成
|
|
実行結果
|
|
とりえず3と5で割ってみる。
|
|
実行結果
|
|
※SET /a って、並べると変な動きするのね・・・1桁目が %3 で、2桁目が %5 の値になってます。
コマンドプロンプトは、_コマンド中に別のコマンドを書けない_ので、もう一工夫しないとFizzとBuzzを分けられません。
(1文字目を切り出して if して、2文字目を切り出して if して、、、みたいなのは非常に面倒)むー・・・っと考えて、3か5で割り切れる値だけを抽出。
|
|
実行結果
|
|
そう、
- 10→Fizz
- 01→Buzz
- 11→FizzBuzz
仕上げ。
|
|
実行結果
|
|
完成!
コマンドプロンプトだけで頑張った割には、かなりスッキリした形かと。
Gistにも上げておきました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for /f "usebackq tokens=1,2" %a in (`"for /L %n in (1,1,100) do @set /a (10-%n%3)/10 && set/a (10-%n%5)/10 && echo %n && echo."`) do @(if %a==11 (echo FizzBuzz) else if %a==10 (echo Fizz) else if %a==01 (echo Buzz) else (echo %b)) |