#include <iostream>
using namespace std;
void get_set(char a[],int b[],int i,int n)
{
if(i>n)//输出子集
{
for(i=1;i<=n;i++)
{
if(b[i]==1)
cout<<a[i];
}
cout<<endl;
}
else
{
b[i]=0;
get_set(a,b,i+1,n);
b[i]=1;//回溯
get_set(a,b,i+1,n);
}
}
int main()
{
char a[10];
int b[10];
for(int i=1;i<=4;i++)
cin>>a[i];
get_set(a,b,1,4);
return 0;
}
输入:
A B C D
输出
(空集)
D
C
CD
B
BD
BC
BCD
A
AD
AC
ACD
AB
ABD
ABC
ABCD