Advertisement
Guest User

Untitled

a guest
Nov 6th, 2013
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int v[100], x[100], n, i, s, nr=0;
  5. int sum(int k)
  6. {
  7. int s1=0, i;
  8. for(i=1; i<=k; i++)
  9. s1=s1+x[i]*v[i];
  10. return s1;
  11. }
  12. void Tip()
  13. {
  14. nr++;
  15. cout<<"solutia: "<<nr<<endl;
  16. for(i=1; i<=n; i++)
  17. if(x[i]!=0)
  18. cout<<x[i]<<" monede de valoarea "<<v[i]<<endl;
  19. cout<<endl;
  20. }
  21. int valid(int k)
  22. {
  23. return (sum(k)<=s);
  24. }
  25. int sol(int k)
  26. {
  27. return (k==n && sum(k)==s);
  28. }
  29. void back(int k)
  30. {
  31. int i;
  32. for(i=0; i<=s/v[k]; i++)
  33. {
  34. x[k]=i;
  35. if(valid(k))
  36. if(sol(k))
  37. Tip();
  38. else if(k<n) back(k+1);
  39. }
  40. }
  41. int main()
  42. {
  43. cout<<"dati suma de plata: "; cin>>s;
  44. cout<<"dati numarul tipurilor de monede: "; cin>>n;
  45. for(i=1; i<=n; i++)
  46. {
  47. cout<<"dati valoarea tipului "<<i<<": "; cin>>v[i];
  48. }
  49. back(1);
  50. if(nr==0)
  51. cout<<"nu avem solutii";
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement