未输出,求调qwq
  • 板块P1784 数独
  • 楼主LGCat_ERR
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/8 17:55
  • 上次更新2024/8/8 19:12:39
查看原帖
未输出,求调qwq
747305
LGCat_ERR楼主2024/8/8 17:55
#include<bits/stdc++.h>
using namespace std;

int m[100][100];
bool n=0;

void put(int x,int y){
//	cout<<'('<<x<<','<<y<<')'<<endl;
	int flag=0;
	for(int i=1;i<=9&&n==0;i++){//put number
		for(int j=1;j<=9&&m[x][y]==0;j++){//check x	
//			cout<<"m[j][y]="<<m[j][y];
			if(m[j][y]==i){
//				cout<<"m[j][y]="<<m[j][y]<<" wrong number:"<<i<<endl;
				flag=1;
				break;
			}
		}
		for(int j=1;j<=9&&!flag&&m[x][y]==0;j++){//check y
//			cout<<2;
			if(m[x][j]==i){
				flag=1;
				break;
			}
		}
		if(flag){
			continue;
		}
		cout<<'('<<x<<','<<y<<')'<<endl;
//		cout<<"m[x][y]="<<m[x][y];
		if(m[x][y]==0){		
			m[x][y]=i;
//			cout<<1;
		}	
		if(x==9&&y==9){
			for(int a=1;a<=9;a++){
				for(int j=1;j<9;j++){
					cout<<m[i][j]<<' ';
				}
				cout<<endl;
			}
			n=1;
			return;
		}
			
		if(x==9)put(1,y+1);
		else put(x+1,y);
	}
	return;
}

int main(){
	for(int i=1;i<=9;i++){
		for(int j=1;j<9;j++){
			cin>>m[i][j];
		}
	}
//	cout<<m[2][1]<<endl;
	put(1,1);
}
2024/8/8 17:55
加载中...