二进制模拟

二进制语法

(<<)是左移,将这组数左移,高位舍去,低位补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;
}
posted @ 2022-07-14 14:48  zyzzzzlh  阅读(92)  评论(1)    收藏  举报