vineri, 9 noiembrie 2012

Fie n bacnote cu valorile a1,a2,...,an. Sa se afiseze toate posibilitatile de a da rest in valoare de toate unitatile folosind toate valorile posibile.


#include<iostream.h>
int a[100],v[100],n,k,s,i,t,s1;
void afisare(int k)
{ int i;
for(i=1;i<=k;i++)
cout<<a[v[i]]<<' ';}
int cont(int k)
{
for(i=1;i<=k-1;i++)
if(v[k]<=v[i])
return 0;
s1=0;
for(i=1;i<=k;i++)
s1=s1+a[v[i]];
if(s1>s)
return 0;
return 1;}
void back(int k)
{ int i;
for(i=1;i<=n;i++)
v[k]=i;
if(cont(k)==1)
if(s1==s)
afisare(k);
else
back(k+1);}}
int main()
{cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
cout<<"s=";
cin>>s;
back(1);
return 0;}