#include<bits/stdc++.h> using namespace std; int tab[1000007]; int bin(int a){ int b=0; while(a!=0){ b=b+a%2; a=a/2; } return b; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n,suma=0,a=1,j=0; cin>>n; a=1; while(suma<n){ tab[a]=bin(a); suma=suma+tab[a]; a++; j++; } if(suma>n){ for(int z=n;z>0;z--){ if(tab[z]==suma-n){ tab[z]=0; j--; break; }} } cout<<j<<"\n"; for(int i=n;i>0;i--){ if(tab[i]!=0){ cout<<i<<" "; } } return 0; }
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 | #include<bits/stdc++.h> using namespace std; int tab[1000007]; int bin(int a){ int b=0; while(a!=0){ b=b+a%2; a=a/2; } return b; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n,suma=0,a=1,j=0; cin>>n; a=1; while(suma<n){ tab[a]=bin(a); suma=suma+tab[a]; a++; j++; } if(suma>n){ for(int z=n;z>0;z--){ if(tab[z]==suma-n){ tab[z]=0; j--; break; }} } cout<<j<<"\n"; for(int i=n;i>0;i--){ if(tab[i]!=0){ cout<<i<<" "; } } return 0; } |