二进制位运算模拟所有情况。

来源:互联网 发布:乐视为什么倒闭 知乎 编辑:程序博客网 时间:2024/05/22 08:09

给出一个N,就有2^N种不同的方式,用二进制&模拟出所有情况输出。

#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <queue>#include <map>#include <stack>#include <list>#include <vector>using namespace std;int main(){int n,i,j;int a[1000];while (~scanf("%d",&n)){int m=1<<n;for (i=1;i<=m;i++){int k=0;for (j=0;j<n;j++){a[j]=0;if (i & (1<<j)){a[j]=1;k++;}}for (j=0;j<n;j++)printf("%d ",a[j]);cout<<endl;}}return 0;}


0 0