搜索......每一个都去试一遍.....A了,代码:
#include#include using namespace std;int a[1100][1100];int ans1[1100][1100],ans2[1100][1100],ans3[1100][1100];int n;bool djy=0;void dfs(int x,int y) { if(djy==1) return ;//为了不OLE.... if(a[x][y]!=0) { //有数 if(x==9&&y==9) { //输出 for(int i=1; i<=9; i++) { for(int j=1; j<=9; j++) { cout< >n; for(int k=1; k<=n; k++) { memset(ans1,0,sizeof(ans1));//赋初值 memset(ans2,0,sizeof(ans2)); memset(ans3,0,sizeof(ans3)); for(int i=1; i<=9; i++) { for(int j=1; j<=9; j++) { char ch; cin>>ch; a[i][j]=ch-'0'; if(a[i][j]>0) { ans1[i][a[i][j]]=1;//标记有数 ans2[j][a[i][j]]=1;//同上 ans3[(i-1)/3*3+(j-1)/3+1][a[i][j]]=1;//宫格公式..... } } } djy=0; dfs(1,1); }}
A了QwQ(不小心点了格式化)