[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int a[10] = {0}, f[1000][1000] = {{0}}, lenF[1000] = {0}, lenL = 0;
int getF(int len, int N)
{
if(len > N)
{
return 0;
}
for(int i = 0; i < lenL; i++)
{
for(int j = 0;j < lenF; j++)
{
f[i + lenL][j] = f[j];
}
lenF[i + lenL] = lenF;
}
int t = lenL;
lenL = 2 * lenL + 1;
for(int i = t;i < lenL; i++)
{
f[lenF++] = a[len];
}
}
int main(int argc, char *argv[])
{
int N = 0;
scanf("%d", &N);
for(int i = 0; i < N; i++)
{
scanf("%d", &a);
}
for(int i = 0; i < N; i++)
{
getF(i, N);
}
for(int j = 0; j < lenL; j++)
{
printf("{");
for(int k = 0; k < lenF[j]; k++)
{
printf("%d, ", f[j][k]);
}
printf("}");
}
printf("\n");
}
[/mw_shl_code]
输入一个数字表示元素个数,再输入n个数表示各个元素值
输出了除空集外所有子集
例子:
输入一个数字表示元素个数,再输入n个数表示各个元素值
输出了除空集外所有子集
5
0 1 2 3 4 5
{0, }{0, 1, }{1, }{0, 2, }{0, 1, 2, }{1, 2, }{2, }{0, 3, }{0, 1, 3, }{1, 3, }{0, 2, 3, }{0, 1, 2, 3, }{1, 2, 3, }{2, 3, }{3, }{0, 4, }{0, 1, 4, }{1, 4, }{0, 2, 4, }{0, 1, 2, 4, }{1, 2, 4, }{2, 4, }{0, 3, 4, }{0, 1, 3, 4, }{1, 3, 4, }{0, 2, 3, 4, }{0, 1, 2, 3, 4, }{1, 2, 3, 4, }{2, 3, 4, }{3, 4, }{4, }