求助【方阵检索】怎么写???
  • 板块P1784 数独
  • 楼主呐呐呐
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/9/18 20:57
  • 上次更新2023/11/5 13:01:39
查看原帖
求助【方阵检索】怎么写???
250357
呐呐呐楼主2020/9/18 20:57

如题,求助【方阵检索】怎么写?? 顺便请大神帮忙看看还有哪里有错的www

请受蒟蒻之% orz orz orz orz

using namespace std;

int a[10][10];
	
void print ()
{
	for(int i=1;i<=9;i++)
	{
	   	  for(int j=1;j<=9;j++)
		{
			cout<<a[i][j]<<" ";
		}
		cout<<endl;	
	}
	exit(0);
}


void dfs(int x,int y)
{
	if(a[x][y]!=0) 
	{
		if(x==9&&y==9) print();
		if(y==9) dfs(x+1,1);
		else dfs(x,y+1);
		
	}
	else
	{
		for(int i=1;i<=9;i++)
		{
			a[x][y]=i;
			
			for(int j=1;j<=9;j++)
			{
				if(j==i) continue;//跳过自己 
				if(a[x][y]==a[x][j]||a[x][y]==a[j][y]) break;//判断横排竖排是否有相同的数 
				
				//求助!3*3方阵怎么检索!??? 
			}
		}
	}
	
	print();
				
	exit(0);		
}
int main()
{
	
	for(int i=1;i<=9;i++)
	{
		for(int j=1;j<=9;j++) 
		cin>>a[i][j];
	}
	
	for(int i=1;i<=9;i++)
	{
		for(int j=1;j<=9;j++) 
		dfs(i,j);
	}
	
	return 0;
}
2020/9/18 20:57
加载中...