duminică, 4 noiembrie 2012

Dată o mulțime A de numere pozitive și un număr M, să se determine toate submulțimile lui A cu suma elementelor M


#include<iostream.h>
int v[100],n,k,t,i,m,j,s,M,a[100];

void afisare(int k)
{s=0;
for(i=1;i<=k;i++)
s=s+a[v[i]];
if(s==m)
for(i=1;i<=k;i++)
cout<<a[v[i]]<<' ';
cout<<endl; }

int cont(int k)
{ for(i=1;i<=k-1;i++)
if(v[i]>=v[k])
return 0;
return 1; }

void back(int k)
{int i;
for(i=1;i<=n;i++)
{v[k]=i;
if(cont(k)==1)
{afisare(k);
if(k<n)
back(k+1);}}}

int main()
{cout<<"n=";
cin>>n;
cout<<"m=";
cin>>m;
for(i=1;i<=n;i++)
cin>>a[i];
back(1);
return 0;}

Niciun comentariu:

Trimiteți un comentariu