238. Negatenary

お久しぶりです。
最近忙しかったりあんまりコードが縮まなかったりであなごるに参加できてないです。
というわけで生存報告の代わりに過去の問題のコードを公開します。

a,i;main(k,n){for(;n=!a?printf("%o\n",k+1039),a=++i,k=i<243:n*8;a/=-3)k+=a%3*n;}

試行錯誤していたら出来上がったコードなので、どう動いているのか僕にもよくわからないです。
8進数を使うことによって「n*10」→「n*8」と1バイト稼げています。
1039は、1040が8進数で2020であることに由来する数字です。
まだ縮むかもしれないなーと思いながら放置している問題です。