求幂集

#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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午2:18
下一篇 2023年2月9日 下午2:18

相关推荐