トップ «前の日記(2013-01-18(Fri)) 最新 次の日記(2013-01-21(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2013-01-20(Sun) ファミレスに入ったときは、たぶん曇り

新たなFizzBuzzに向けての試行錯誤

$ 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や内容が変った場合はあしからず。

index.htmlは ここから。