int x[];
int n;
int i;
getch(n);
for(i=0;i<n;i++)
x[i]=i+1;
for(i=0;i<n;i++)
{
print(x[i]);//单值的子集
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
print(x[i],x[j]);//双值的子集
}
。
int n;
int i;
getch(n);
for(i=0;i<n;i++)
x[i]=i+1;
for(i=0;i<n;i++)
{
print(x[i]);//单值的子集
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
print(x[i],x[j]);//双值的子集
}
。
do{
if(ok)
{
if(结束)输出结果
else 扩展
}
else 调整;
ok=检查前m个整数填放的合理性;
}while(1)//自己写了,好像大体上这个样子