diferenta>modul

Se citesc de la tastatura doua nr naturale n si v.Scrieti un program care afiseaza toate nr de la 1 la n in toate modurile posibile, astfel incat intre oricare doua numere afisate in pozitii invecinate, diferenta in modul sa fie mai mare decat valoarea data v. Exemplu: n=4,v=1 solutiile vor fi 3 1 4 … Read more

JUCARII MOS CRACIUN

Copiii asteapta jucarii de la Mos Craciun. Scrieti un program care determina toate modurile diferite in care ei pot sa fie asezati in lista, astfel incat sa fie vizitati toti copiii si vizitele sa se faca in orinea descrescatoare a numarului de jucarii dorite de fiecare.Se citesc de la tastatura: n, numarul de copii, apoi … Read more

COMBINARI ITERATIV

#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k,p; void init(){ if(k>1) st[k]=st[k-1]; else st[k]=0; } int succesor(){if (st[k]<n-p+k) {st[k]++; return 1; }else return 0;} int valid(){return 1;} int sol(){return (k==p);} void tipar(){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} void bkt(){int as;k=1;init();while(k>0){do {} while ((as=succesor()) && !valid());if (as) if (sol()) tipar(); else {k++;init();}else k–;}} void main(){cout<<“n=”;cin>>n;cout<<“p=”;cin>>p;bkt();getch();} {joscommentenable}    

ARANJAMENTE ITERATIV

#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k,p; void init(){st[k]=0;} int succesor(){if (st[k]<n) {st[k]++; return 1; }else return 0;} int valid(){for(int i=1;i<k;i++) if(st[i]==st[k]) return 0;return 1;} int sol(){return (k==p);} void tipar(){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} void bkt(){int as;k=1;init();while(k>0){do {} while ((as=succesor()) && !valid());if (as) if (sol()) tipar(); else {k++;init();}else k–;}} void main(){cout<<“n=”;cin>>n;cout<<“p=”;cin>>p;bkt();getch();} {joscommentenable}  

vector sortat

#include<iostream.h> #include<fstream.h> void main(){int n,i,v[10],gasit=0,c; fstream f(“numere.txt”,ios::in); f>>n; for(i=1;i<=n;i++) f>>v[i]; for(i=1;i<=n;i++) cout<<v[i];while(gasit==0){gasit=1;for(i=1;i<=n-1;i++)if(v[i]>v[i+1]){c=v[i];v[i]=v[i+1];v[i+1]=c;gasit=0;}}for(i=1;i<=n;i++) cout<<v[i];fstream g(“nrsort.txt”,ios::out);for(i=1;i<=n;i++) g<<v[i];f.close();g.close();} {module orizontal600} {joscommentenable}

fotbal

//un patron are o suma s;ce jucatori poate lua#include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,p,s,a[20]; int valid(int p){int suma=0;for(int i=1;i<p;i++) if(st[i]>=st[p]) return 0;for(i=1;i<=p;i++) suma=suma+a[st[i]];if(suma>s) return 0;return 1;} int sol(int p){int suma=0;for(int i=1;i<=p;i++) suma=suma+a[st[i]];return (suma==s);} void tipar(int p){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} void bkt(int p){int val;for(val=1;val<=n;val++){st[p]=val;if(valid(p)) if(sol(p))tipar(p);else bkt(p+1);}} void main(){cout<<“n=”;cin>>n;cout<<“s=”;cin>>s;for(int i=1;i<=n;i++){cout<<“a[“<<i<<“]=”;cin>>a[i];} bkt(1);} {joscommentenable}

cifre distincte pare alaturate

Backtracking cifre distincte pare alaturate Folosind metoda backtracking, sa se afiseze toate nr din n cifre distincte a.i. sa nu fie 2 cifre pare alaturate #include<iostream.h>#include<conio.h>#include<math.h>int st[20],n,k,p; int valid(int p){if(p==1 && st[p]==0) return 0; for(int i=1;i<p;i++) if(st[i]==st[p]) return 0; if(p>1 && st[p]%2==0 && st[p-1]%2==0) return 0;return 1;} int sol(int p){return (p==n);} void tipar(int p){for(int i=1;i<=p;i++) cout<<st[i];cout<<endl;} … Read more

cifre pare alaturate

Se citesc n cifre.Sa se afiseze toate nr formate cu acestea astfel incat sa nu existe doua cifre pare alaturate. #include<iostream.h>#include<conio.h> int n,st[10],k,p;int v[10]; int valid(int p){if((p==1) && v[st[p]]==0) return 0;if((p>1) && (v[st[p]]%2==0 && v[st[p-1]]%2==0)) return 0; return 1;} int sol(int p){return (n==p);} void tipar(int p){for(int i=1;i<=p;i++)cout<<v[st[i]];cout<<endl;} void bkt(int p){ for(int val=1;val<=n;val++){st[p]=val;if (valid(p)) if (sol(p)) … Read more

suma nr pozitive

Se citeste un sir de nr intregi din fisierul “numere.txt”.Fisierul contine pe primul rand numarul n de elemente ale sirului, apoi, pe fiecare din urmatoarele n randuri,cate un element.Sa se afiseze suma elementelor pozitive ale sirului. #include<fstream.h>void main(){int n,x,s=0;fstream f(“numere.txt”,ios::in);f>>n;for(int i=1;i<=n;i++){f>>x;if(x>0) s=s+x;}cout<<s;f.close();} {module orizontal600} {joscommentenable}

litere

Se citesc n litere.Sa se formeze toate cuvintele de cate p litere formate din cele n litere astfel incat aceeasi litera sa nu se afle pe 2 pozitii alaturate. #include<iostream.h>#include<conio.h> int n,st[10],k,p;char v[10]; int valid(int k){if((k>1) && (st[k]==st[k-1])) return 0;return 1;} int sol(int k){return (k==p);} void tipar(int p){for(int i=1;i<=p;i++)cout<<v[st[i]];cout<<endl;} void bkt(int k){ for(int val=1;val<=n;val++){st[k]=val;if (valid(k)) if (sol(k)) … Read more