#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; } |
English