(PARI) print1("1, "); for(k=1, 30, n=10^k; row=floor(log(n)/log(2)); col=1; s=0; a=0; while(s<n, for(j=col, row+1, if(j>1, smd=binomial(row, j-2), smd=2^row); if((s+smd)>n, col=j-1; row=row-1; break, s+=smd; if(j>1, a+=binomial(row-1, j-2), a+=2^(row-1))))); print1(a", ")) \\ Herman Jamke (hermanjamke(AT)fastmail.fm), Apr 28 2007