也就是只有0和1的进制表示 ;
for(int i = 0; i < (1<<n); i++)
for(int i=0;i<n;i++)
if(x&(1<<i))
cout<<i<<endl;
for(int i = 0; i < (1<<n); i++){
xxxxxx..
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
for(int i = 0; i < (1<<n); i++) //从0~2^n-1个状态 1 左移 n 位
{
printf("%d : ",i) ;
for(int j = 0; j < n; j++)
{
if(i & (1 << j))
{
printf("%d ",j);
}
}
printf("\n");
}
return 0;
}
运行效果 :?