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