Advertisement
tankian202

Untitled

Sep 5th, 2023
675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4. #include <algorithm>
  5.  
  6. bool igeretesZ(int *pInt, int k, int n, char **pString);
  7.  
  8. void kiirZ(int *pInt, int n, int k, char **pString);
  9.  
  10. void kiirMatrix(int *pInt, int k);
  11.  
  12. int countFives(int number, int count = 0) {
  13.     if (number == 0)
  14.         return count;
  15.     if (number % 10 == 5)
  16.         countFives(number / 10, count + 1);
  17.     else countFives(number / 10, count);
  18.  
  19. }
  20.  
  21.  
  22. long hatvanyozas(int alap, int kitevo) {
  23.     if (kitevo == 0)
  24.         return 1;
  25.     if (kitevo % 2 == 0)
  26.         return hatvanyozas(alap * alap, kitevo / 2);
  27.     return alap * hatvanyozas(alap, kitevo - 1);
  28. }
  29.  
  30. int kiirTomb(int n, int t[]) {
  31.     if (n == 0) {
  32.         return 0;
  33.     }
  34.     if (n > 0) {
  35. //        kiirTomb(n - 1,t);
  36. //        printf("%d ", t[n - 1]);
  37.         return t[n - 1] + kiirTomb(n - 1, t);
  38.     }
  39.  
  40. }
  41.  
  42.  
  43. using namespace std;
  44. void kiirZ(int *x, int k, char **szinek) {
  45.     for (int i = 0; i <= k; ++i) {
  46.         cout<<szinek[x[i]]<<' ';
  47.     }
  48.     cout<<'\n';
  49. }
  50.  
  51. bool igeretesZ(int *x, int k, char **szinek) {
  52.     if (k >= 1)
  53.         if (strstr("feher sarga narancs", szinek[x[1]])==NULL)
  54.             return false;
  55.     if(k>0 and strcmp(szinek[x[0]],szinek[x[1]])==0)
  56.         return false;
  57.     if(k>1 and strcmp(szinek[x[2]],szinek[x[1]])==0)
  58.         return false;
  59.  
  60.     return true;
  61. }
  62. void BTz(int *x, int n, int k, int p, char **szinek) {
  63.     int i;
  64.     for (i = 0; i < n; ++i) {
  65.         x[k]=i;
  66.         if (igeretesZ(x, k, szinek)) {
  67.             if (k < p-1) {
  68.                 BTz(x, n, k + 1, p, szinek);
  69.             } else kiirZ(x, k, szinek);
  70.         }
  71.     }
  72. }
  73.  
  74. bool igeretes2( int x[], int k){
  75.     for (int i=0; i<k; i++){
  76.         if(x[k]== x[i]){
  77.             return false;
  78.         }
  79.     }
  80.     return true;
  81. }
  82. ///@param x a verem
  83. ///Ez a fuggveny leszopja a faszod
  84. ///k a rekurzio szintje, de egyben a sor index is a matrixban (check the paper)
  85. ///x[k] a verem gyakorlatilag, es az oszlop index
  86. void backTracking(int k, int n, int x[], int &megoldasCounter){
  87.     for(int i=0; i<n; i++){
  88.         x[k]=i;
  89.  
  90.         if(igeretes2( x, k)) {
  91.             if (k < n - 1) {
  92.                 backTracking(k + 1, n, x, megoldasCounter);
  93.             } else if(megoldasCounter <8){
  94.                 megoldasCounter++;
  95.                 kiirMatrix(x, k);
  96.             }
  97.         }
  98.     }
  99. }
  100.  
  101. void kiirMatrix(int x[], int n) {
  102.     for (int i = 0; i <= n; ++i) {
  103.         for (int j = 0; j <= n; ++j) {
  104.             if(x[i]==j){
  105.                 cout<<"1 ";
  106.             } else {
  107.                 cout<<"0 ";
  108.             }
  109.         }
  110.         cout<<"\n";
  111.     }
  112.     cout<<"\n";
  113.     cout<<"\n";
  114.  
  115. }
  116.  
  117. int main() {
  118.     int megoldasCounter=0;
  119.     int matrix[4][4]={0};
  120.     int x[4];
  121.     backTracking( 0 ,4, x, megoldasCounter);
  122.     cout<<"\n"<<megoldasCounter;
  123.     ///k- hanyadik szintrol indulunk
  124.     ///n- hany elemem van(jelenleg a matrix merete)
  125.     ///x- tomb(ferrari)
  126. }
  127.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement