//1、有一个集合由A-Z这26个字母组成,打印这个集合的所有子集,每个子集一行,写C代码实现,不能使用递归
//str为A~Z的字母集合,n为需要处理的前n个字符集合,本题n为26,n是为了方便测试
#include<stdio.h>
void SubSet(int n)
{
const char *str = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
int maxnum = 1<<n; //2^n
for(int i=0;i<maxnum;i++)//处理0到2^n -1之间的数字
{
for(int j=0;j<n;j++)//j表示二进制右数第几位
{
if( (i&(1<<j)) != 0)//表示当前位不为0,则需要打印相应的字母
{
printf("%c “,str[j]);
}
}
printf(”\n");
}
}

int main()
{
SubSet(3);
//printf("-----------\n");
//SubSet(26);//数据太大不好统计测试结果

return 0;

}
有一个集合由A-Z这26个字母组成,打印这个集合的所有子集,每个子集一行,写C代码实现,不能使用递归

相关文章:

  • 2022-03-05
  • 2021-09-12
  • 2022-01-05
  • 2022-12-23
  • 2022-02-16
  • 2022-12-23
  • 2021-11-27
  • 2021-10-29
猜你喜欢
  • 2021-10-13
  • 2021-06-06
  • 2022-12-23
  • 2021-07-14
  • 2021-12-04
  • 2022-12-23
  • 2021-08-08
相关资源
相似解决方案