Sa se scrie un program care sa afiseze toate partitiile unui
numar natural n. Numim partitie a unui numar natural nenul n o multime de numere naturale nenule {p1, p2, , pk} care ndeplinesc conditia p1+p2+ +pk = n. Ex: pt n = 4 programul va afisa: 4 = 1+1+1+1 4 = 1+1+2 4 = 1+3 4 = 2+2 4 = 4 #include<iostream> using namespace std; int n, ns,sol[20];
void back(int i, int sp) { int j; if (sp==n) afis(i-1); else for(j=1;j<=n-sp;j++) if (j>=sol[i-1]) { sol[i]=j; back(i+1, sp+j); } }
void main() { cout<<"Dati n:"; cin>>n; ns=0; back(1,0); cout<<"S-au gasit "<<ns<<" solutii."<<endl; } Sa se scrie un program care genereaza si scrie ntr-un fisier toate cuvintele formate din n vocale mici (n numar natural citit de la tastatura, n<10), ordonate alfabetic. De exemplu, pentru n=3 se vor scrie n fisier: aaa aae aai aao aau aea ..... uuo uuu
#include<iostream> using namespace std; int x[10],n; char v[]="aeiou";
Se citeste un numar natural n (cel mult 4). Afisati toate matricile n*n care contin elementele distincte de la 1 la n*n si in care orice element are paritate diferita de orice vecin al sau (vecinii se considera pe linie si pe coloana). Exemplu: 1 2 3 4 6 5 8 7 9 10 11 14 12 13 16 15 #include<fstream> #include<cstring> Using namespace std; using namespace std; ifstream f("date.in"); ofstream g("date.out"); int n,p[100],a[10][10]; void afis() { int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) g<<a[i][j]<<" "; g<<endl;} g<<endl; } int bun(int i, int j) { if(i>1) if(a[i-1][j]%2==a[i][j]%2) return 0; if(j>1) if(a[i][j-1]%2==a[i][j]%2) return 0; return 1; } void back(int i, int j) { for(int v=1;v<=n*n;v++) if(!p[v]) { a[i][j]=v; p[v]=1; if(bun(i,j)) if(i==n&&j==n) afis(); else if(j<n) back(i,j+1); else back(i+1,1); p[v]=0; } } int main() { f>>n; back(1,1); return 0; } La curtea regelui Arthur s-au adunat n cavaleri numerotati de la 1 la n. Despre ei se cunosc relatii de dusmanie de forma (x,y) cu semnificati ca x si y se dusmanesc. Afisati toate modurile in care Arthur ii poate aranja la o masa rotunda cu n scaune astfel incat sa nu stea unul langa altul 2 cavaleri care dusmanesc. #include <fstream> using namespace std; ifstream fin("date.in"); ofstream fout("date.out"); int a[50][50],x[50],p[50],n; void citire() { int i,j; fin>>n; while(fin>>i>>j) a[i][j]=a[j][i]=1;