帮忙解释下,结果怎么来的!!!!
给出一集合{1,2,...,n}求出其的所有子集。例:n=4;1,2,3,4;其子集中{1,2,4}怎么来的啊!!!#include<stdio.h>
bool use[1000];
char ans[1000];
char a[1000];
int n,i;
void dfs(int p,int l){
printf("{");
for(i=0;i<l;i++){
printf("%c",ans[i]);
}
printf("}\n");
for(int i=p;i<n;i++){
if(!use[i]){//!use[i]即为false!!!!
use[i]=true;
ans[l]=a[i];
dfs(++p,l+1);
use[i]=false;
}
}
}
int main()
{
int i,j,k=0;
printf("输入n的值:\n");scanf("%d",&n);
scanf("%s",a);
for(i=0;i<n;i++) use[i]=false;
dfs(0,0);
while(1);
return 0;
}