Advertisement
Stancu

Generarea submultimilor unei multimi

Nov 20th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. void init(int k);
  7. void tipar();
  8. int esteValid(int k);
  9. int existaSuccesor(int k);
  10. int solutie(int k);
  11. int x[100], nrsolutii = 0, n;
  12.  
  13. int main()
  14. {
  15.     int k = 1;
  16.     init(1);
  17.  
  18.     cout << "Cate cadouri sunt: " << endl;
  19.     cin >> n;
  20.  
  21.     while(k > 0)
  22.     {
  23.         if (existaSuccesor(k))
  24.             {
  25.                 x[k]++;
  26.                 if(esteValid(k))
  27.                     if(solutie(k))
  28.                         tipar();
  29.                     else
  30.                     {
  31.                         k++;
  32.                         init(k);
  33.                     }
  34.             }
  35.         else
  36.         k--;
  37.     }
  38.  
  39.     cout << "Nr de solutii este: " << nrsolutii << endl;
  40.  
  41.     return 0;
  42. }
  43.  
  44. void init(int k)
  45. {
  46.     x[k] = -1;
  47. }
  48.  
  49. int esteValid(int k)
  50. {
  51.   return 1;
  52. }
  53.  
  54. int existaSuccesor(int k)
  55. {
  56.     return x[k] < 1;
  57. }
  58.  
  59. int solutie(int k)
  60. {
  61.     return k == n;
  62. }
  63.  
  64. void tipar()
  65. {
  66.     nrsolutii++;
  67.     for(int i = 1; i <= n; i++)
  68.         if(x[i])
  69.           cout << i << " ";
  70.     cout << endl;
  71.  
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement