僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
$ for num in `seq 1 100`; > do echo -n $num ': '; > echo -n $num |hexdump |head -n1; > done | awk '{print $1, $4}' | > grep ' 30\|[^1-46-9]35' 5 0035 10 3031 15 3531 20 3032 25 3532 30 3033 35 3533 40 3034 45 3534 50 3035 55 3535 60 3036 65 3536 70 3037 75 3537 80 3038 85 3538 90 3039 95 3539 100 3031
Buzzはなんとかなるが、この方法でFizzはちょっと難しそう。
で、こんどは任意の基数で。
st> 3r10. 3r20. 3r100. 3r110. 3r120 3 6 9 12 15
スクリプト全体が仕上がるまで、もうしばらく迷うことになりそうだけど。
前に書いた bc の FizzBuzz(拡張機能使用)から 15 の剰余を除いてみた。
ついでに、要らないブレースも消してみた。
#!/usr/bin/bc --quiet for(x=1; x <= 100; x++) { if (x % 3 == 0) print "fizz" if (x % 5 == 0) print "buzz" if (x % 5 != 0 && x % 3 != 0) print x print "\n" } quit
POSIX bc (これも 前に書いた)で 15 の剰余を除くのは、少なくとも現在の自分の 頭では無理に思えた。
<後記>
"<" であるべき二行目が、">"になってしまった。
これでは一回も実行されずに終わる。ので訂正。
</後記>
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。