Professional Documents
Culture Documents
Sub Multi Mi
Sub Multi Mi
Solutia
{}
{3}
{2}
{2,3}
{1}
{1,3}
{1,2}
{1,2,3}
Codificare
000
001
010
011
100
101
110
111
Implementare
#include<iostream>
using namespace std;
char sp[]="
";
int main()
{ cout<<endl<<endl<<sp<<"Submultimile multimii {1,2,3.....,n}"<<endl;
cout<<endl<<sp<<" Dati valoarea lui n: "; cin>>n;
cout<<endl;
BackRec(1);
cout<<endl<<sp<<"Numar solutii: "<<nrsol;
return 0;
}
sau
#include<iostream.h>
int n,s[100];
void init(int k){
s[k]=-1;}
int succesor(int k)
{
if(s[k]<1)
{s[k]=s[k]+1; return 1;}
else return 0;}
int valid()
{
return 1;}
int solutie(int k)
{
return k==n;}
void tipar()
{int i,x=0;
cout<<"{";
for(i=1;i<=n;i++)
if(s[i]==1)
{cout<<i<<",";
x=1;}
if(x) cout<<'\b';
cout<<"}"<<endl;}
void bt(int k)
{
init(k);
while(succesor(k))
if(valid())
if(solutie(k)) tipar();
else bt(k+1);}
void main()
{
cout<<"n=";cin>>n;
bt(1);}