您的位置:首页 > 其它

每日一算法:可能产生的集合

2013-11-11 15:48 274 查看
#include <stdio.h>

char str[] = "abcdefghijklmnopqrstuvwxyz";

void print_subset(int n , int s)
{
int i;
printf("{");
for(i = 0 ; i < n ; ++i)
{
if( s&(1<<i) )         // 判断s的二进制中哪些位为1,即代表取某一位
printf("%c ",str[i]);

}
printf("}\n");
}

void subset(int n)
{
int i;
for(i= 0 ; i < (1<<n) ; ++i)
{
print_subset(n,i);
}
}

int main(void)
{
int n;
printf("输入一个数(<=26):");
scanf("%d",&n);
subset(n);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: