如果要对n个物体进行选择,那么有多少种情况?
#include <bits/stdc++.h>
using namespace std;
int main(){
//n <= 20 1e6
//1e8
int n = 3;
for(int i = 0; i < (1 << n); i++)// 相当于枚举所有的情况 o(2^n*n)
{
for(int j = 0; j < n ;j++){
printf("%d ", (i >> j )& 1);
}
puts("");
}
return 0;
}
分析:/*
a1 a2 a3 a4 ... an
0 0 0 0 0
1 1 1 1 1
1 2 3 n = 3
i = 0 - i < 8;
i
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3//
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7
0 1 1 &
0 0 1
0 0 1
*/