#include<bits/stdc++.h>
using namespace std;
vector<int> numb;
vector<int> res;
int bity(int x){
int res = 0;
while(x>0){
if(x%2 == 1)res++;
x/=2;
}
return res;
}
int main(){
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n; cin >> n;
int cnt = 0;
int akt = 1;
while(cnt < n){
cnt += bity(akt);
numb.push_back(akt);
akt++;
}
//for(int i = 0; i < numb.size(); i++) cout << numb[i]<< " ";
for(int i = numb.size()-1; i >= 0; i--){
if(cnt - bity(numb[i]) < n) res.push_back(numb[i]);
else cnt -= bity(numb[i]);
}
cout << res.size() << "\n";
for(int i = 0; i < res.size(); i++) cout << res[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 | #include<bits/stdc++.h> using namespace std; vector<int> numb; vector<int> res; int bity(int x){ int res = 0; while(x>0){ if(x%2 == 1)res++; x/=2; } return res; } int main(){ ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); int n; cin >> n; int cnt = 0; int akt = 1; while(cnt < n){ cnt += bity(akt); numb.push_back(akt); akt++; } //for(int i = 0; i < numb.size(); i++) cout << numb[i]<< " "; for(int i = numb.size()-1; i >= 0; i--){ if(cnt - bity(numb[i]) < n) res.push_back(numb[i]); else cnt -= bity(numb[i]); } cout << res.size() << "\n"; for(int i = 0; i < res.size(); i++) cout << res[i] << " "; return 0; } |
English