Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int st[100], n;
- void afisare(int k)
- {
- for (int i = 1; i <= n ; i++)
- {
- cout << st[i];
- }
- cout << endl;
- }
- bool valid(int k)
- {
- for (int i = 1; i <= k - 1; i++)
- if (st[k] == st[i])
- return false;
- return true; //Returneaza true DOAR DACA nu mai exista elementul
- }
- void bk(int k)
- {
- for (int i = 1; i <= n; i++)
- {
- st[k] = i;
- if (valid(k) == true) //Verificam sa nu mai existe aceeasi valoare in stiva
- if (k == n) //Verificam daca k == n, inseamna ca nu mai este loc in stiva deci avem o solutie
- afisare(k);
- else //Daca stiva inca NU este plina, trec pe nivelul urmator din stiva.
- bk(k + 1); //Apelam recursiv functia bk pentru urmatorul nivel
- }
- }
- int main()
- {
- cout << "Introdu cate elemente doresti: ";
- cin >> n;
- bk(1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment