Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int x[100], n, nrsol=0;
  6.  
  7. void init(int k)
  8. {
  9.     x[k]=0;
  10. }
  11.  
  12. int existaSuccesor(int k)
  13. {
  14.     return x[k]<n;
  15. }
  16.  
  17. int solutie(int k)
  18. {
  19.     return k==n;
  20. }
  21.  
  22. void tipar()
  23. {
  24.     for(int i=1; i<=n; i++)
  25.     {
  26.        /* cout<<"|";
  27.         for(int j=1;j<=n;j++)
  28.             if(x[i]==j)
  29.               cout<<" * |";
  30.             else
  31.                 cout<<"   |";
  32.         cout<<endl<<endl;
  33.     */
  34.         ///cout<<"Dama "<<k<<" pe colana "<<x[k]<<endl;
  35.         cout<<x[i];
  36.     cout<<endl;
  37.     }
  38. }
  39.  
  40. int cont(int k)
  41. {
  42.     for(int i=1; i<k; i++)
  43.         if(x[k]==x[i])
  44.             return 0;
  45.     return 1;
  46. }
  47.  
  48. void back(int k)
  49. {
  50.     init(k);
  51.     while(existaSuccesor(k))
  52.     {
  53.         x[k]=x[k]+1;
  54.         if(cont(k))
  55.             if(solutie(k))
  56.                 tipar();
  57.             else
  58.                 back(k+1);
  59.     }
  60. }
  61.  
  62. /*int main()
  63. {
  64.     cout<<"Cate dame sunt? ";
  65.     cin>>n;
  66.     back(1);
  67.     return 0;
  68. }*/
  69.  
  70. int main()
  71. {
  72.     cout<<"n=";
  73.     cin>>n;
  74.     int k=1;
  75.     init(1);
  76.     while(k>0)
  77.         if(existaSuccesor(k))
  78.         {
  79.             x[k]=x[k]+1;
  80.             if(cont(k))
  81.                 if(solutie(k))
  82.                 {
  83.                     tipar();
  84.                     nrsol++;
  85.                 }
  86.                 else
  87.                 {
  88.                     k=k+1;
  89.                     init(k);
  90.                 }
  91.         }
  92.         else
  93.             k=k-1;
  94.     cout<<"Exista "<<nrsol<<" de solutii."<<endl;
  95.  
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement