#include<iostream>
using namespace std;
char B[20];//默认为'\0'
void getpowerset(int i,char a[])
{
if(i>=strlen(a))
{
cout<<"{";
if(B[0])
{
for(int j=0;j<strlen(B)-1;j++)
cout<<B[j]<<",";
cout<<B[j]<<"},";
}
else
cout<<"⊙"<<"}";
}
else
{
char x=a[i];
int k=strlen(B);
B[k]=x;
getpowerset(i+1,a);
B[k]='\0';//在舍的时候赋值为空
getpowerset(i+1,a);
}
}
void main()
{
cout<<"请输入数据集合,以字符串方式输入"<<endl;
char *str=new char[100];
cin>>str;
cout<<"\n幂集为:\n\n{";
getpowerset(0,str);
cout<<"}\n";
system("pause");
}
/*#include<iostream>
#include<list>
using namespace std;
void GetPowerSet(int i,list<int>a,list<int>&b)
{
int x;
if(i>a.size())
{
while(!b.empty())
{
cout<<b.front()<<'\t';
b.pop_front();
}
}
else
{
int j=0;
list<int>::iterator itr=b.begin();
for(;itr!=b.end();itr++,j++)
if(j==i)
{
x=*itr;
break;
}
int k=b.size();
itr=b.begin();
for(int l=0;l<k+1;l++,itr++);
b.insert(itr,x);
GetPowerSet(i+1,a,b);
itr=b.begin();
for(int c=0;c<k+1;c++,itr++);
b.erase(itr);
}
}
void main()
{
list<int>a;
cout<<"请输入有多少个元素";
int num;
cin>>num;
for(int i=0;i<num;i++)
{
cin>>num;
a.push_back(num);
}
list<int>b;
GetPowerSet(1,a,b);
}*/
原文链接: https://www.cnblogs.com/-wang-xin/archive/2012/11/23/2785121.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/70406
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!