Advertisement
Yanislav29

Untitled

Jan 19th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1.  
  2.  
  3. #include "pch.h"
  4. #include <iostream>
  5. #include <cmath>
  6. #include <cstring>
  7. using namespace std;
  8. int printBitmask(bool *bitm, unsigned sz) {
  9. for (size_t i = 0; i < sz; i++)
  10. {
  11. cout << bitm[i];
  12. }
  13. cout << endl;
  14. return 0;
  15. }
  16. int convertDecToBin(int n, bool * bin, unsigned sz) {
  17. for (int i = sz - 1, j = 0; i >= 0;i--, j++) {
  18. bin[j] = (n >> i) & 1;
  19. }
  20. printBitmask(bin, sz);
  21. return 0;
  22. }
  23. int printSubSet(char * set, unsigned sz, bool * bitm) {
  24. cout << "{";
  25. bool f = false;
  26. for (size_t i = 0; i < sz; i++)
  27. {
  28. if (bitm[i]) {
  29. cout << (f ? "," : "") << set[i];
  30. f = true;
  31. }
  32. }
  33. cout << "}" << endl;
  34. return 0;
  35. }
  36. int fillSet(char * set, unsigned sz) {
  37. for (size_t i = 0; i < sz; i++)
  38. {
  39. cin >> set[i];
  40. }
  41. return 0;
  42. }
  43. int main()
  44. {
  45. unsigned n;
  46. cout << "Please enter power if set:";
  47. cin >> n;
  48. char *set = new char[n];
  49. cout << "Please enter set elements:";
  50. fillSet(set, n);
  51. bool * bitm = new bool[n];
  52. for (int i = 0;i < pow(2, n);i++) {
  53.  
  54. convertDecToBin(i, bitm, n);
  55. printSubSet(set, n, bitm);
  56. }
  57. if (bitm != nullptr) {
  58. delete[] bitm;
  59. bitm = nullptr;
  60. }
  61. if (set != nullptr) {
  62. delete[] set;
  63. set = nullptr;
  64. }
  65.  
  66. return 0;
  67.  
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement