1. Generarea tuturor permutarilor.
#include <iostream>
using namespace std;
int st[50],n,k; // declaratiile pentru ce este necesar la global
void tipar() //functie pentru afisarea solutiei
{int i;
for(i=1;i<=n;i++) // un for pentru parcurgere
cout<<st[i]<<' '; // si afisarea elementului asezat in stiva
cout<<endl;
}
int valid(int k) // functie de verificare
{int i;
for(i=1;i<=k;i++)
if(st[k]==i)
return 0;
else
return 1;
}
void back(int k)
{int i;
if(k==n+1) // daca s-a ajuns la nivelul n+1 apelam functia de tipar si se va afisa solutia gasita
tipar();
else
for(i=1;i<=n;i++) // daca nu din multimea de alegere se ia elementul
{st[k]=i;
if(valid(k)) // si se verifica daca poate poate fii adaugat la solutie
back(k+1); //daca se poate adauga se reia functia cu elementul fixat
}
}
int main()
{cin>>n; //se citeste n-ul
back(1); // si se apeleaza functia back cu 1;
return 0;
}
Niciun comentariu:
Trimiteți un comentariu