怎么没结果a
查看原帖
怎么没结果a
654535
Zhouyuan0father楼主2022/5/1 22:13
#include<bits/stdc++.h>
using namespace std;
int ans2[10][10],chushi[10][10],hang[10][10],lei[10][10],gong[10][10];
int gongge(int i,int j){
	if(i%3!=0)
	i+=(3-i%3);
	if(j%3!=0){
	}
	j+=(3-j%3);
	i/=3;
	j/=3;
	return (j-1)+i;
}
int sum; 
void ans(int i,int j){
	if(i!=9||j!=9){
		for(int o=i;o<=9;o++){
		for(int p=j;p<=9;p++){
			ans2[o][p]=chushi[o][p];
			if(chushi[i][p]==0){
				for(int qy=1;qy<=9;qy++){
					if(hang[o][qy]==0&&
					    lei[p][qy]==0&&
					    gong[gongge(o,p)][qy]==0){
					   		hang[o][qy]++;
					   		lei[p][qy]++;
					   		gong[gongge(o,p)][qy]++;
					   		ans2[o][p]=qy;
					   		cout<<qy<<endl;
							//cout<<o<<" "<<p<<endl;
					   		ans(o,p);
					   		ans2[o][p]=0;
					   }
				}
				
			}
		}
	}
	}if(i==9&&j==9){
		for(int o=1;o<=9;o++){
			for(int p=1;p<=9;p++){
				if(ans2[o][p]!=0)
				sum++;
			}
		}
		if(sum==81)
		{
			for(int o=1;o<=9;o++){
			for(int p=1;p<=9;p++){
				cout<<ans2[o][p];
			}
			cout<<endl;
		}
		return;
		}
		return;
	}
	
}

int main(){
	for(int i=1;i<=9;i++){
		for(int j=1;j<=9;j++){
			cin>>chushi[i][j];
			ans2[i][j]=chushi[i][j];
			if(chushi[i][j]!=0){
				hang[i][chushi[i][j]]++;
				lei[j][chushi[i][j]]++;
				gong[gongge(i,j)][chushi[i][j]]++;
				//cout<<gong[gongge(i,j)][chushi[i][j]]<<" "<<endl; 
			}
		}
	}
	cout<<endl<<endl<<endl;
	ans(1,1); 
	return 0;
} 
2022/5/1 22:13
加载中...