题目:用屏幕输入一行单词,然后对这些单词进行集合的求幂集运算,并输出之
辅助样例输入:
input:
辣 是 真 滴 牛 批
样例输出:
output:
{}
辣
是
辣 是
真
辣 真
是 真
辣 是 真
滴
辣 滴
是 滴
辣 是 滴
真 滴
辣 真 滴
是 真 滴
辣 是 真 滴
牛
辣 牛
是 牛
辣 是 牛
真 牛
辣 真 牛
是 真 牛
辣 是 真 牛
滴 牛
辣 滴 牛
是 滴 牛
辣 是 滴 牛
真 滴 牛
辣 真 滴 牛
是 真 滴 牛
辣 是 真 滴 牛
批
辣 批
是 批
辣 是 批
真 批
辣 真 批
是 真 批
辣 是 真 批
滴 批
辣 滴 批
是 滴 批
辣 是 滴 批
真 滴 批
辣 真 滴 批
是 真 滴 批
辣 是 真 滴 批
牛 批
辣 牛 批
是 牛 批
辣 是 牛 批
真 牛 批
辣 真 牛 批
是 真 牛 批
辣 是 真 牛 批
滴 牛 批
辣 滴 牛 批
是 滴 牛 批
辣 是 滴 牛 批
真 滴 牛 批
辣 真 滴 牛 批
是 真 滴 牛 批
辣 是 真 滴 牛 批
#include<cstdio>
char ch[1011][1011];
int main()
{
int i = 0;
int j = 0;
// puts(ch[2][]);
while(1)
{
char s = getchar();
if(s == '\n')
{
ch[i][j] = '\0';
break;
}
if(s == ' ')
{
ch[i][j] = '\0';
i++;
j = 0;
continue;
}
ch[i][j] = s;
j++;
}
//puts(ch[1]);
int n = i+2,n2 = 1;
//for(int i = 0;i < n;i++) puts(ch[i]);
for(int i = 0;i < n -1;i++) n2 *= 2;
int bi = 0;
for(bi = 0;bi < n2;bi++)
{
int bi2 = bi;
if(bi == 0)
{
printf("{}\n");
continue;
}
for(int j = 0;j < n;j++)
{
if(bi2 % 2 == 1)
{
if(i != n-1)printf("%s ",ch[j]);
if(i == n-1) printf("%s",ch[j]);
}
bi2 /= 2;
}
if(bi != n2 - 1) putchar('\n');
}
return 0;
}