本文主要是介绍7-1 幂集-所有的子集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
description
所谓幂集(Power Set), 就是原集合中所有的子集(包括全集和空集)构成的集族。
输入一个整数n(0<=n<=10)
输出由整数1~n构成的集合{1,2,3,…,n}的幂集。
输入格式:
整数n(0<=n<=10)
输出格式:
{1,2,3,…,n}的幂集,每行一个子集,子集不可重复,子集之间顺序以及子集元素之间顺序均不作要求。
子集输出格式:{x,x,x,…,x}(x表示子集中的元素)
输入样例1:
3
输出样例1:
{}
{1}
{2}
{3}
{1,2}
{1,3}
{2,3}
{1,2,3}
输入样例2:
0
输出样例2:
{}
solution
#include<stdio.h>
#include<math.h>
int a[10], b[10];
void inc(int n){for(int i = 0; i < n; i++){if(b[i]) b[i] = 0;else{b[i] = 1;return;}}
}
int main(){int n, flag;scanf("%d", &n);for(int i = 0; i < n; i++){a[i] = i + 1;b[i] = 0;}for(int i = 0; i < pow(2, n); i++){printf("{");for(int j = 0; j < n; j++){flag = 0;if(b[j]){printf("%d", a[j]);for(int k = j+1; k < n; k++) if(b[k]) flag = 1;if(flag) printf(",");}}printf("}\n");inc(n);}return 0;
}
这篇关于7-1 幂集-所有的子集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!