#include <iostream> #include <bitset> using namespace std; int tab[10000000]; bitset<28> bset; int bitbeat(int num) { int wyn=0; bset=num; for(int a=0;a<bset.size();a++)if(bset[a]==1)wyn++; return wyn; } int main() { ios_base::sync_with_stdio(0); int n,y=1,i=0,temp; cin>>n; while(n>0) { temp=bitbeat(y); if(n-temp>=0) { n=n-temp; tab[i]=y; i++; } else { i--; n=n+bitbeat(tab[i]); while(n-temp!=0) { y++; temp=bitbeat(y); } tab[i]=y; i++; break; } y++; } cout<<i<<endl; for(int a=i-1;a>=0;a--)cout<<tab[a]<<" "; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <iostream> #include <bitset> using namespace std; int tab[10000000]; bitset<28> bset; int bitbeat(int num) { int wyn=0; bset=num; for(int a=0;a<bset.size();a++)if(bset[a]==1)wyn++; return wyn; } int main() { ios_base::sync_with_stdio(0); int n,y=1,i=0,temp; cin>>n; while(n>0) { temp=bitbeat(y); if(n-temp>=0) { n=n-temp; tab[i]=y; i++; } else { i--; n=n+bitbeat(tab[i]); while(n-temp!=0) { y++; temp=bitbeat(y); } tab[i]=y; i++; break; } y++; } cout<<i<<endl; for(int a=i-1;a>=0;a--)cout<<tab[a]<<" "; } |