-->
当前位置:首页 > 题库 > 正文内容

程序填空题:求子集(幂集)问题(回溯法)

Luz4年前 (2021-06-19)题库1166
有一个含n个数的数组a,所有元素均不相同,设计一个算法求其所有子集(幂集)。

### 输入格式:
第一行输入元素个数n,再依次输入n个数。

### 输出格式:
逐行输出每个解

### 输入样例1:
```in
3
1 2 3
```
### 输出样例1:
```out
{}
{3}
{2}
{2,3}
{1}
{1,3}
{1,2}
{1,2,3}
```

```c++
#include 
#include 
#define MAXN 100
void dispasolution(int a[],int n,int x[])	//输出一个解
{
	printf("{");
	int f=0;
	for (int i=0;i0)
			printf(",%d",a[i]);		
	}
	printf("}\n");
}
void dfs(int a[],int n,int i,int x[])	//回溯算法
{
	if (i>=n)
		;
	else
	{
		;
		dfs(a,n,i+1,x);	
		;
		dfs();	
	}
}
int main()
{	
	int a[MAXN];				
	int n;
	int x[MAXN];				
	memset(x,0,sizeof(x));		
	scanf("%d",&n);
	for(int i=0;i
答案: 第1空:dispasolution(a,n,x) 第2空:x[i]=0 第3空:x[i]=1 第4空:a,n,i+1,x


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。