集合子集的两种求法.(写着玩,大家看看)

heidongstar heidongstar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <stdio.h>

#define SIZE 3

int a[] = {1,2,3};

int status[] = {-1,-1,-1};


void next(int l)//利用组合方法直接构造子集
{
int i;
for(i=0;i<SIZE;i++)
if(status[i]!=-1)
printf("%d ",a[status[i]]);
printf("\n");
if(l==SIZE)
return;

for(i=l;i<SIZE;i++)

{
status[l] = i;
next(i+1);
status[l] = -1;

}

}

void enumit(int l)//穷举集合每个元素的状态(0或1)
{
int i;

if(l==SIZE)
{
for(i=0;i<SIZE;i++)
if(status[i] == 0)
printf("%d ",a[i]);
printf("\n");
return;
}
else
{
status[l] = 0;
enumit(l+1);
status[l] = -1;
enumit(l+1);

}


}

int main()
{

//next(0);
enumit(0);
system("PAUSE");
return 0;

}
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
heidongstar
C语言 70,039 成员 243,237 内容