static int[,] board = new int[,]
{3, 0, 6, 5, 0, 8, 4, 0, 0},
{5, 2, 0, 0, 0, 0, 0, 0, 0},
{0, 8, 7, 0, 0, 0, 0, 3, 1},
{0, 0, 3, 0, 1, 0, 0, 8, 0},
{9, 0, 0, 8, 6, 3, 0, 0, 5},
{0, 5, 0, 0, 9, 0, 6, 0, 0},
{1, 3, 0, 0, 0, 0, 2, 5, 0},
{0, 0, 0, 0, 0, 0, 0, 7, 4},
{0, 0, 5, 2, 0, 6, 3, 0, 0}
static bool SolveSudoku(int row, int col)
return SolveSudoku(row + 1, 0);
if (board[row, col] != 0)
return SolveSudoku(row, col + 1);
for (int num = 1; num <= 9; num++)
if (isSafe(row, col, num))
if (SolveSudoku(row, col + 1))
static bool isSafe(int row, int col, int num)
for (int c = 0; c < 9; c++)
if (board[row, c] == num)
for (int r = 0; r < 9; r++)
if (board[r, col] == num)
int startRow = row - row % 3;
int startCol = col - col % 3;
for (int r = startRow; r < startRow + 3; r++)
for (int c = startCol; c < startCol + 3; c++)
static void PrintSudoku()
for (int row = 0; row < 9; row++)
for (int col = 0; col < 9; col++)
Console.Write(board[row, col] + " ");
public static void Main()
Console.WriteLine("Sudoku başarıyla çözüldü");
Console.WriteLine("Sudoku çözülemedi");