#include<stdio.h>
#include<string.h>
#define MAXN 100
void dfs(int *a,int n,int i,int *x);
void Output(int *a,int n,int *x);
int main()
{
int a[]={
1,2,3};
int n=sizeof(a)/sizeof(a[0]);
int x[MAXN];
memset(x,0,sizeof(x));
printf("The result is:\n");
dfs(a,n,0,x);
return 0;
}
void dfs(int *a,int n,int i,int *x)
{
if(i>=n)Output(a,n,x);
else{
x[i]=0;
dfs(a,n,i+1,x);
x[i]=1;
dfs(a,n,i+1,x);
}
}
void Output(int *a,int n,int *x)
{
int i;
printf("{");
for(i=0;i<n;i++){
if(x[i]==1)printf("%d",a[i]);
}
printf("} ");
}
求一个集合的幂集(递归回溯法)
猜你喜欢
转载自blog.csdn.net/weixin_46112487/article/details/108965048
今日推荐
周排行