#include<bits/stdc++.h> using namespace std; int bity(int n){ int ile = 0; while(n){ if(n%2==1)ile++; n/=2; } return ile; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; int suma = 1; int k = 1; while(suma < n){ k++; suma += bity(k); } int odejm = suma-n; int pomin; for(int i=k;i>=0;i--){ if(bity(i) == odejm){ pomin = i; break; } } if(pomin==0)cout<<k<<endl; else cout<<k-1<<endl; for(int i=k;i>=1;i--){ if(i!=pomin)cout<<i<<" "; } cout<<endl; 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 40 41 42 43 44 45 46 47 48 | #include<bits/stdc++.h> using namespace std; int bity(int n){ int ile = 0; while(n){ if(n%2==1)ile++; n/=2; } return ile; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; int suma = 1; int k = 1; while(suma < n){ k++; suma += bity(k); } int odejm = suma-n; int pomin; for(int i=k;i>=0;i--){ if(bity(i) == odejm){ pomin = i; break; } } if(pomin==0)cout<<k<<endl; else cout<<k-1<<endl; for(int i=k;i>=1;i--){ if(i!=pomin)cout<<i<<" "; } cout<<endl; return 0; } |