Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- using namespace std;
- int *Zajete;
- int *A;
- int licznik=0;
- int silnia(int p)
- {
- int Silnia=1;
- for(int i=1; i<=p; i++)
- Silnia*=i;
- return Silnia;
- }
- void print(int tab1[], string tab2[], int k)
- {
- for(int i=0; i<k ; i++)
- {
- cout << tab2[tab1[i]] << " ";
- }
- }
- void Perm(int m, string tab[], int k)
- {
- for(int j=0; j<k; j++)
- if(Zajete[j]==0)
- {
- A[m]=j;
- Zajete[j]=1;
- if(m==k-1)
- {
- print( A , tab, k);
- licznik++;
- cout << "\n";
- }
- else
- Perm(m+1, tab, k);
- Zajete[j]=0;
- }
- }
- int main()
- {
- int n;
- cout<<"Program generujacy permutacje zbioru n elementowego"<< endl;
- cout << "Podaj liczbe elementow zbioru (z przedzialu od 1 do 12): n=";
- cin >> n;
- while(n>12 || n<1)
- {
- cout << "Podano za duze n. Podaj liczbe elementow zbioru (z przedzialu od 1 do 12): n=";
- cin >> n;
- }
- Zajete = new int[n];
- A = new int[n];
- for (int j=0; j<n; j++)
- {
- Zajete[j]=0;
- }
- string C[n];
- for ( int i=0; i<n; i++)
- {
- cout << " podaj " << i+1 << " element zbioru ";
- cin >> C[i];
- }
- Perm (0,C,n);
- cout<< "Liczba wykonanych permutacji: ";
- cout << licznik << endl;
- int s=silnia(n);
- cout<< "Powinno byc " << s << " permutacji"<<endl;
- if(s==licznik)
- {
- cout<<"Algorytm wykonal sie poprawnie"<<endl;
- }
- else
- {
- cout<< "Algorytm nie wykonal sie poprawnie";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement