Pentru partitia unei multimi am facut programul uramtor ,dar nu merege si n-am habar unde am gresit, mai precis unde se blocheaza, ma poate ajuta cineva ?
#include<fstream.h>
int n;
int nc;
int P[30];
int NrP;
ofstream fout("part.out");
void out()
{
fout<<"partia "<<++NrP<<endl;
for(int j=1;j<=nc;j++)
{fout<<"{";
for(int i=1;i<=n;i++)
if(P[i]==j) cout<<i<<" ";
fout<<"} ";
}
fout<<endl;
}
void GenPart(int k)
{
if(k-1==n) out();
else for(int j=1;j<=nc;j++)
{ P[k]=j;
GenPart(k+1);
}
nc++;
P[k]=nc;
GenPart(k+1);
nc--;
}
void main()
{cout<<"n="; cin>>n;
GenPart(1);
fout.close();
}