二进制模拟
二进制语法
(<<)是左移,将这组数左移,高位舍去,低位补0, 1<<n=1*\(2^n\)
(>>)是右移,将这组数右移,高位补1,低位舍去,1>>n=1/\(2^n\)
二进制模拟题
一般用于取东西,只有取和不取两种状态
1为取,0 为不取
那么就可以理解为n位二进制数,每一位代表对应第几个是否被取
int main(){
int n;
cin>>n;
for(int i=0;i<=((1<<n)-1);i++){
int d=i;
for(int j=1;j<=n;j++){
if(d&1)
cout<<j<<" ";
d/=2;
}
cout<<endl;
}
return 0;
}

浙公网安备 33010602011771号