//4. Cunoscand valorile a n monede, precum si numarul de exemplare din fiecare moneda, // sa se plateasca o suma de bani s doar cu monedele avute la dispozitie. #include using namespace std; fstream f("date.in",ios::in); fstream g("date.out",ios::out); int x[20], n, nrsol=0, nr[20], val[20], sum[20], S; void Afisare() { int i; g<S) return 0; if (k==n && sum[k]!=S) return 0; return 1; } void Back() { int k=1, cand; x[1]=-1; while (k>0) { cand=0; while (cand==0 && x[k]>n;//numarul de tipuri de monezi f>>S; for (i=1;i<=n;i++) { f>>val[i];//valoarea monedei i f>>nr[i];//numarul de monezi i } Back(); return 0; } Alta rezolvare: #include using namespace std; int monezi[10],cantitate[10],n,suma; void citire(int v[]) { for (int i=1;i<=n;i++) cin>>v[i]; } int solutie[10]; void afisare() { cout<>n; cout<<"Introduceti suma: "; cin>>suma; cout<<"Ce tipuri de monezi aveti? "; citire(monezi); cout<<"Ce cantitate din fiecare moneda aveti? "; citire(cantitate); back(1); return 0; } 2. Problema cu paranteze #include using namespace std; int n,v[100]; void afisare() { for (int i=1;i<=n;i++) { if (v[i]) cout<<"("; else cout<<")"; } cout<pd)||(pd>n/2)||(pi>n/2)) return 0; } return 1; } void back (int k) { for (int i=0;i<=1;i++) { if (k==n) return; v[k]=i; if (valid(k)) afisare(); back(k+1); } } int main() { cout<<"Introduceti numarul de paranteze:"; cin>>n; if (n%2==0) back(1); else cout<<"Nu exista secventa de paranteze corect inchise pentru "<