Advertisement
jelyslime

zad3:всички подмножества на дадено универсално множество,

Jan 16th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. /*Задача 7. Да се напише функция на С++, която намира всички подмножества на дадено универсално множество, които съдържат елемент k (въведен от потребителя).*/
  2. void genElemKSet(int * uset, int * set, unsigned sz, int elem, unsigned curr);
  3.  
  4. int main()
  5. {
  6. const unsigned sz = 5;
  7. int uarr[sz] = {1, 2, 3, 4, 5};
  8. char bitmaskA[] = "10110";
  9.  
  10. int subset[sz];
  11. cout << "Genetate all subsets of the universal set, that have element with value 4: " << endl;
  12. genElemKSet(uarr, subset, sz, 4, 0);
  13. }
  14.  
  15. void genElemKSet(int * uset, int * set, unsigned sz, int elem, unsigned curr){
  16. if(curr==sz) printArray(set, sz);
  17. else{
  18. unsigned ind = 0;
  19. for(unsigned i=0; i<sz; i++){
  20. if(uset[i] == elem) {
  21. ind = i;
  22. break;
  23. }
  24. }
  25. if(curr != ind){
  26. set[curr] = 0;
  27. genElemKSet(uset, set, sz, elem, curr+1);
  28. set[curr] = 1;
  29. genElemKSet(uset, set, sz, elem, curr+1);
  30. }
  31. else{
  32. set[ind] = 1;
  33. genElemKSet(uset, set, sz, elem, curr+1);
  34. }
  35.  
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement