>>158
> for (i = 1 << (n-1); --i >= 0;) {
で 1<<(n-1)回のループをまわしてる
つまりこの個数分の出力があるってことだろ?
オーバーフローするほどの数だったらそもそも数が多すぎて出力しきれないんじゃないか?