Esempio n. 1
0
int main(){
	setsudoku();//特定问题
	//initsudoku();//起始行为123456789
	printsudoku();
	if(getnext(0,0)){
		printf("Get It!\n");
		printsudoku();
	}
	else{
		printf("Not get it!\n");
	}
	return 0;
}
Esempio n. 2
0
int solve(int i,int j)		//Recursive Backtracking Function to find the legal value at a position
{int k;
 if(i==9)
 {
	printsudoku();
	exit(0);
 }
while(A[i][j]!= -1)
{
		if(j==8 )
		{
			if(i<8)			
			{
			 	i=i+1;
		 	 	j=0;
			}
			else
			{	
				printsudoku();
				exit(0);		 
			}
		}
		else
		 	j++;	
}
		if(A[i][j]==-1)
		{for(k=1;k<=9;k++)
			{	
					if(legal(i,j,k))
					{	A[i][j]=k;
						if(j==8)
							solve(i+1,0);
						else
							solve(i,j+1);
					A[i][j]=-1;	
					}	
			}
		}

}