#include<bits/stdc++.h>
using namespace std;
int main() {
int a = 11;
vector<int> b;
//第一种
for(int i = 1;i<=a;i*=2){
a = a-i;
b.push_back(i);
}
if(a>0){
b.push_back(a);
}
for(int i = 0;i < b.size();++i){
cout<<b[i]<<" ";
}
cout<<endl;
vector<int> c;
a = 11;
//第二种
int k;
for(k = 1; a-(1<<k)+1>0;++k){
c.push_back(1<<(k-1));
}
c.push_back(a-(1<<(--k))+1);
for(int i = 0;i < c.size();++i){
cout<<c[i]<<" ";
}
cout<<endl;
return 0;
}
两种二进制拆分方法
最新推荐文章于 2022-10-24 20:52:28 发布