题目:
数独问题:9*9的矩阵,要求每一行,每一列,每个九宫格都是1-9这九个数字且不能重复。
给定一9*9矩阵,里面有部分数空缺,要求找出满足上述要求的一个矩阵。
如:
思路:
代码:
#include#include using namespace std;class Sudoku{ private: int m_chess[9][9]; int m_result[9][9]; bool b_solve; public: Sudoku(int chess[9][9]){ memcpy(m_chess,chess,sizeof(m_chess)); b_solve=false; } bool IsValid(int i,int j){ int t=m_chess[i][j]; int k; for(k=0;k<9;k++){ if(j!=k && t==m_chess[i][k]) return false; if(i!=k && t==m_chess[k][j]) return false; } int iGrid=(i/3)*3; int jGrid=(j/3)*3; int k1,k2; for(k1=iGrid;k1