void GetPowerSet2(int nArray[], int nLength)
{
int mark = 0;
int i = 0;
int nStart = 0;
int nEnd = (1 << nLength) -1;//(2^n) -1
bool bNullSet = false;
for (mark = nStart; mark <= nEnd; mark++)
{
bNullSet = true;
for (i = 0; i < nLength; i++)
{
if (((1<<i)&mark) != 0) //该位有元素输出
{
bNullSet = false;
printf("%d\t", nArray[i]);
}
}
if (bNullSet) //空集合
{
printf("@\t");
}
printf("\n");
}
}