#include
"stdio.h"
//-----输出A幂集,有n+1个元素---k表示目前B中含有的元素,严蔚敏P150//
void
GetPowerSet(
int
i
,
int
const
*
A
,
int
*
B
,
int
n
,
int
k
=0)
{
//一次对A中的元素进行“取”或“舍”的过程
if
(
i
>
n
)
//输出
{
for
(
int
j=0;j<
k
;j++)
printf(
"%d"
,
B
[j]);
printf(
"\n"
);
}
else
{
GetPowerSet(
i
+1,
A
,
B
,
n
,
k
);
B
[
k
++]=
A
[
i
];
GetPowerSet(
i
+1,
A
,
B
,
n
,
k
);
}
}
main.cpp
//-----GetPowerSet TEST求幂集则是---------------//
int
A[4]={1,2,3,4};
int
B[4];
GetPowerSet(0,A,B,3,0);