方格填数

2022-06-28 18:51:59 浏览数 (1)

本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。

代码语言:javascript复制
#include<iostream>
#include<cstring>
using namespace std;
int arr_num[10][2];
int count=0;
int judge(int arr[3][4],int x,int y,int temp){
	if(x-1>=0&&y-1>=0){
		if(arr[x-1][y-1]==(temp-1)||arr[x-1][y-1]==(temp 1)){
			//cout<<"11"<<endl;
			return 0;
		}
	}
	if(x-1>=0){
		if(arr[x-1][y]==(temp-1)||arr[x-1][y]==(temp 1)){//cout<<"22"<<endl;
			return 0;
		}
	}
	if(x-1>=0&&y 1<4){
		if(arr[x-1][y 1]==(temp-1)||arr[x-1][y 1]==(temp 1)){//cout<<"33"<<endl;
			return 0;
		}
	}
	if(y-1>=0){
		if(arr[x][y-1]==(temp-1)||arr[x][y-1]==(temp 1)){//cout<<"44"<<endl;
			return 0;
		}
	}
	if(y 1<4){
		if(arr[x][y 1]==(temp-1)||arr[x][y 1]==(temp 1)){//cout<<"55"<<endl;
			return 0;
		}
	}
	if(x 1<3&&y-1>=0){
		if(arr[x 1][y-1]==(temp-1)||arr[x 1][y-1]==(temp 1)){//cout<<"66"<<endl;
			return 0;
		}
	}
	if(x 1<3){
		if(arr[x 1][y]==(temp-1)||arr[x 1][y]==(temp 1)){//cout<<"77"<<endl;
			return 0;
		}
	}
	if(x 1<3&&y 1<4){
		if(arr[x 1][y 1]==(temp-1)||arr[x 1][y 1]==(temp 1)){//cout<<"88"<<endl;
			return 0;
		}
	}
	return 1;
	 
} 
void dg(int arr[3][4],int x,int y){
	if(x==2&&y==3){
		for(int i=0;i<3;i  ){
			for(int j=0;j<4;j  ){
				cout<<arr[i][j]<<"  ";
			}
			cout<<endl;
		}
		count  ;
		return;
	}
	for(int i=0;i<10;i  ){
		if(arr_num[i][1]==0){
			//cout<<"i="<<i<<endl;
			if(judge(arr,x,y,arr_num[i][0])){
				arr_num[i][1]=1;
				arr[x][y]=arr_num[i][0];
				//cout<<"arr[x][y]=arr_num[i][0];"<<endl;
				//cout<<"x:"<<x<<"y:"<<y<<"arr_num[i][0]:"<<arr_num[i][0]<<endl;
				if(x==0){
					if(y 1<4){
						dg(arr,x,y 1);
					}else{
						dg(arr,1,0);
					}
				}else if(x==1){
					if(y 1<4){
						dg(arr,x,y 1);
					}else{
						dg(arr,2,0);
					}
				}else if(x==2){
					if(y 1<4){
						dg(arr,x,y 1);
					}
				}
				arr_num[i][1]=0;
				arr[x][y]=-5;
			}
		}
	}
}
int main(){
	int arr[3][4];
	for(int i=0;i<10;i  ){
		arr_num[i][0]=i;
		arr_num[i][1]=0;
		cout<<arr_num[i][0]<<endl;
	}
	//memset(arr,-1,sizeof(arr));
	for(int i=0;i<3;i  ){
		for(int j=0;j<4;j  ){
			arr[i][j]=-5;
		}
	}
	arr[0][0]=-2;
	arr[2][3]=-2;
//	for(int i=0;i<3;i  ){
//		for(int j=0;j<4;j  ){
//			arr[]
//		}
//	}
	dg(arr,0,1);
	cout<<count<<endl;
	return 0;
}

Post Views: 186

0 人点赞