Bitwise Counting

最近のあなごるでは、Bitwise Counting@sed が面白かった。
この問題は、0 から 255 までを2進数で表示するというもの。はじめ、sed とは縁のない問題かと思っていたら、tails さんが短い解答を出していたので、少し考えたらわかった。
endless 問題なので、少し spoiler ぎみだが、以下のような再帰操作を考えると解が得られる。

0    00    000
1 → 01 → 001 ...
     10    010
     11    011
           100
           101
           110
           111

つまり各行を2重化して、行末にそれぞれ、0 / 1 をアペンドする操作を繰り返せばよい。
なお、久しぶりに awk でも打った。awk も同じロジックで短い解ができた。ちょっとしたケアレスミス?考慮不足で 1B 損し、トップを逃した。残念。

7/25 追記

shinh さんが、55B@C を出してトップにたった。すごっ。私はといえば、63B から縮まらないので、晒してしまおう。

n;main(i){for(;n--+256;)for(i=8;putchar(i--?49^n>>i&1:10)%5;);}

60B 切る人たちは、何か根本的に違うんだろうな。Gray code のように、8 進数に持って行って、"%08o\n" なのかな?