Lucrez ca tehnician
cauta-ma pe skype vreau sa vad cum lucrezi 
- .Horus
-

- Mesaje: 644
- Membru din: 22 Aug 2016, 02:53
- Server: Devias2
- Regat: Chunjo
- Aprecieri: 124
- Mulţumiri: 1167
- Discord: Copiază ID
- Contact:
Recomand!
- SnNaCk
-

- Mesaje: 255
- Membru din: 22 Aug 2017, 20:18
- Server: In lucru
- Regat: Jinno
- Aprecieri: 164
- Mulţumiri: 90
- Discord: Copiază ID
- Contact:
Recomand. M-a ajutat de fiecare data cand am avut nevoie.
O grilă SUDOKU este o matrice 9 x 9 care respectă următoarele proprietăţi:
1. fiecare element al matricii este un număr natural între 1 şi 9;
2. fiecare linie conţine toate numerele naturale de la 1 la 9;
3. fiecare coloană conţine toate numerele naturale de la 1 la 9;
4. fiecare dintre cele 9 submatrici de dimensiune 3 x 3, evidenţiate prin linii îngroşate în exemplul de mai jos, conţine toate numerele de la 1 la 9.
Un puzzle SUDOKU este o matrice 9 x 9 completată parţial cu numere naturale de la 1 la 9. Mai jos este un exemplu de puzzle SUDOKU. O soluţie a unui astfel de puzzle este o grilă sudoku care coincide cu puzzle-ul pe poziţiile precompletate.
Scrieţi un program care, pentru o matrice 9 x 9 dată, reprezentând un puzzle SUDOKU, determină o soluţie a unui astfel de puzzle, după regulile de mai sus.
Rezolvare:
1. fiecare element al matricii este un număr natural între 1 şi 9;
2. fiecare linie conţine toate numerele naturale de la 1 la 9;
3. fiecare coloană conţine toate numerele naturale de la 1 la 9;
4. fiecare dintre cele 9 submatrici de dimensiune 3 x 3, evidenţiate prin linii îngroşate în exemplul de mai jos, conţine toate numerele de la 1 la 9.
Un puzzle SUDOKU este o matrice 9 x 9 completată parţial cu numere naturale de la 1 la 9. Mai jos este un exemplu de puzzle SUDOKU. O soluţie a unui astfel de puzzle este o grilă sudoku care coincide cu puzzle-ul pe poziţiile precompletate.
Scrieţi un program care, pentru o matrice 9 x 9 dată, reprezentând un puzzle SUDOKU, determină o soluţie a unui astfel de puzzle, după regulile de mai sus.Rezolvare:
Cod: Selectaţi tot
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sudoku.in");
ofstream fout("sudoku.out");
long long a[100][100];
int valid(int x, int y)
{
for(int j=1; j<=9; j++)
if(a[x][j]==a[x][y]&& j!=y)
return 0;
for(int i=1; i<=9; i++)
if(a[i][y]==a[x][y]&& i!=x)
return 0;
int c,b;
c=(x-1)/3;
b=(y-1)/3;
for(int i=c*3+1; i<=c*3+3; i++)
for(int j=b*3+1; j<=b*3+3; j++)
if(a[i][j]==a[x][y] && (i!=x || y!=j))
return 0;
return 1;
}
void afisare()
{
for(int i=1; i<=9; i++)
{
for(int j=1; j<=9; j++)
fout<<a[i][j]<<" ";
fout<<endl;
}
}
void bkt(int x, int y)
{
int i,j;
if(x>9)
afisare();
else
{
if(a[x][y]==0)
for(i=1; i<=9; i++)
{
a[x][y]=i;
if(valid(x,y))
{
if(y<9)
bkt(x,y+1);
else
bkt(x+1,1);
}
a[x][y]=0;
}
else if(y<9)
bkt(x,y+1);
else
bkt(x+1,1);
}
}
int main()
{
for(int i=1; i<=9; i++)
for(int j=1; j<=9; j++)
fin>>a[i][j];
bkt(1,1);
return 0;
}-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 235 vizitatori








