Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int *Zajete;
  7. int *A;
  8. int licznik=0;
  9.  
  10. int silnia(int p)
  11. {
  12. int Silnia=1;
  13. for(int i=1; i<=p; i++)
  14. Silnia*=i;
  15. return Silnia;
  16. }
  17.  
  18.  
  19. void print(int tab1[], string tab2[], int k)
  20. {
  21. for(int i=0; i<k ; i++)
  22. {
  23. cout << tab2[tab1[i]] << " ";
  24. }
  25. }
  26.  
  27. void Perm(int m, string tab[], int k)
  28. {
  29. for(int j=0; j<k; j++)
  30. if(Zajete[j]==0)
  31. {
  32. A[m]=j;
  33. Zajete[j]=1;
  34. if(m==k-1)
  35. {
  36. print( A , tab, k);
  37. licznik++;
  38. cout << "\n";
  39. }
  40. else
  41. Perm(m+1, tab, k);
  42. Zajete[j]=0;
  43. }
  44. }
  45.  
  46.  
  47. int main()
  48. {
  49. int n;
  50. cout<<"Program generujacy permutacje zbioru n elementowego"<< endl;
  51. cout << "Podaj liczbe elementow zbioru (z przedzialu od 1 do 12): n=";
  52. cin >> n;
  53. while(n>12 || n<1)
  54. {
  55. cout << "Podano za duze n. Podaj liczbe elementow zbioru (z przedzialu od 1 do 12): n=";
  56. cin >> n;
  57. }
  58. Zajete = new int[n];
  59.  
  60. A = new int[n];
  61. for (int j=0; j<n; j++)
  62. {
  63. Zajete[j]=0;
  64. }
  65. string C[n];
  66. for ( int i=0; i<n; i++)
  67. {
  68. cout << " podaj " << i+1 << " element zbioru ";
  69. cin >> C[i];
  70. }
  71. Perm (0,C,n);
  72. cout<< "Liczba wykonanych permutacji: ";
  73. cout << licznik << endl;
  74. int s=silnia(n);
  75. cout<< "Powinno byc " << s << " permutacji"<<endl;
  76. if(s==licznik)
  77. {
  78. cout<<"Algorytm wykonal sie poprawnie"<<endl;
  79. }
  80. else
  81. {
  82. cout<< "Algorytm nie wykonal sie poprawnie";
  83. }
  84.  
  85. return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement