求集合的子集 (2)
据 royt(小白鼠),写了个小函数,不过最多
支持32个元素的集合。
void subPrint(unsigned int n)
{
int nArray[32];
unsigned int i,j,x=1;
for(i=0;i<(n<=32)?n:32;i++)
{
a[i] = i;
}
for(i=0;i<(x<<n);i++)
{
printf("{ ");
for(j=0;j<n;j++)
{
if((i&(x<<j))!=0)
{
printf("%d ", nArray[j]);
}
}
printf("}\n");
}
}
执行也快,强人。