File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed
Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ #include <stdio.h>
2+
3+ int solve ();
4+
5+ char sudoku [9 ][9 ];
6+ int isPossible (int i , int j , char k );
7+
8+ int main (){
9+
10+ for (int i = 0 ; i < 9 ; i ++ ){
11+ for (int j = 0 ; j < 9 ; j ++ ){
12+ scanf ("%c " , & sudoku [i ][j ]);
13+ }
14+ }
15+ solve ();
16+ for (int i = 0 ; i < 9 ; i ++ ){
17+ for (int j = 0 ; j < 9 ; j ++ ){
18+ printf ("%c " , sudoku [i ][j ]);
19+ }
20+ printf ("\n" );
21+ }
22+ }
23+
24+ int isPossible (int i , int j , char k ){
25+ for (int x = 0 ; x < 9 ; x ++ ){
26+ if (sudoku [x ][j ] == k || sudoku [i ][x ] == k ){
27+ return 0 ;
28+ }
29+ }
30+ for (int x = i - (i %3 ); x < i - (i %3 ) + 3 ; x ++ ){
31+ for (int y = j - (j %3 ); y < j - (j %3 ) + 3 ; y ++ ){
32+ if (sudoku [x ][y ] == k ){
33+ return 0 ;
34+ }
35+ }
36+ }
37+ return 1 ;
38+ }
39+
40+ int solve (){
41+ for (int i = 0 ; i < 9 ; i ++ ){
42+ for (int j = 0 ; j < 9 ; j ++ ){
43+ if (sudoku [i ][j ] == '.' ){
44+ for (char k = '1' ; k <= '9' ; k ++ ){
45+ if (isPossible (i , j , k ) == 1 ){
46+ sudoku [i ][j ] = k ;
47+ if (solve () == 1 ){
48+ return 1 ;
49+ }
50+ else {
51+ sudoku [i ][j ] = '.' ;
52+ }
53+ }
54+ }
55+ return 0 ;
56+ }
57+ }
58+ }
59+ return 1 ;
60+ }
You can’t perform that action at this time.
0 commit comments