Documente Academic
Documente Profesional
Documente Cultură
h>
int x[10];
int viz[10];
int n;
char s[10];
int i;
for (i=1;i<=n;i++)
printf("\n");
int i;
if (viz[i] == 0 )
x[k] = i;
viz[i] = 1;
if (n == k)
afisare(k);
else
back (k+1);
viz[i] = 0 ; // recursiv
}
int main ()
n=strlen(s);
back(1);
Se dă o tablă de șah formată din n linii și m coloane, definind n*m zone, unele dintre ele fiind
libere, altele conținând obstacole. În zona de coordonate 1 1 se află un cal care se poate
deplasa pe tablă în L, ca la șah, fără a părăsi tabla, fără a trece prin zone care conțin
obstacole și fără a trece de două ori prin aceeași zonă.
Determinați o modalitate prin care calul poate ajunge în zona de coordonate n m – unde se
află o căpiță de fân.
#include <stdio.h>
#include<iostream>
void Citire ()
cin>>n>>m;
int i, j;
for(i=1;i<n;i++)
for(j=1;j<n;j++)
cin>>a[i][j];
void afisare ()
int i, j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if ( i == 1 && j == 1)
else
if ( a[i][j] == 1)
else
printf("\n");
}
}
a[l][c] = k;
if ( l == n && c == m)
afisare();
gasit = 1;
else
for (int i=0;i<8 && gasit == 0;i++)//daca mai am pozitii in care sa ma duc
ln=l+dl[i];
cn=c+dc[i];
//validare
if ( a[ln][cn] == 0)//daca pozitia noua este in int matricii, trb sa verif dadca este libera
a[l][c] = 0;//dca sol pe care o generam in mom de fata nu este buna, atunci cand recursivitatea se va
intoarce in acest punct trb sa elib poz de l si c ca sa ne pregatim pt a genera o noua sol cu alta varianta
}
int main ()
Citire();
back(1, 1, 1);
1. #include <iostream>
2. #define N 1005
3. using namespace std;
4.
5.
6. int a[N],x[N],n,suma[N];
7. void Afisare(int k)
8. {
9. for(int i=1;i<=k;i++) cout<<x[i]<<" ";
10. cout<<"\n";
11. }
12.
13. void Back(int k)
14. { for(int i=x[k-1];i<=n-suma[k-1] && i<=5;i=i+2)
15. { x[k]=i;
16. suma[k]=suma[k-1]+x[k];
17. if(suma[k]==n) Afisare(k);
18. else Back(k+1);
19.
20. }
21.
22. }
23. int main()
24. { cin>>n;
25. x[0]=3;
26. Back(1);
27. return 0;
28. }