Вы находитесь на странице: 1из 1

#include <iostream>

#include <cstdlib>
using namespace std;
/*
Sa se genereze, folosind metoda backtracking, toate submultimile unei multimi.
Ex. Multimea={A,B,C} => {} (multimea vida), {A}, {B}, {C}, {A,B}, {A,C}, {B,C},
{A,B,C}.
*/
int n, i, st[100];
char a[100];
void afisare(int k)
{
cout<<"{";
for(int i=1;i<=k;i++)
cout<<a[st[i]]<<",";
cout<<"\b}"<<endl;
}
void back(int k)
{
if(k<=n)
for(int i=st[k-1]+1;i<=n;i++)
{
st[k]=i;
afisare(k);
back(k+1);
}
}
int main()
{
cout<<"n=";cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"Dati elementul "<<i<<": ";
cin>>a[i];
}
cout<<"Submultimile sunt:"<<endl;
cout<<"{}"<<endl;
back(1);
system("PAUSE");
return EXIT_SUCCESS;
}

Вам также может понравиться