#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;
}
每日一算法:可能产生的集合
最新推荐文章于 2022-04-10 17:44:39 发布