日期:2014-05-20  浏览次数:20673 次

请帮我看一下,这段代码,具体功能里面有详细说明。(主要是算法)
运行后。  
0的地方必须是1到9之间的数字  

每一个数字在所在行,和所在列中,必须是唯一的。  

例如   3行2列是一个5   ,那么第3行中,就不能在有5了。  
第2列中,也不能有了。  
谢谢。  
   
import   java.io.*;
import   java.lang.*;
public   class   a1
{  
    public   static   void   main(String[]   args)
    {
      int   [][]   k=new   int   [10][10];
      int   i;
      int   j;
      int   x=1;
      int   ii;
      int   jj;
      int   flag=0;

      System.out.println( "***************************** ");
 
    for   (   i=1;i <=9;i++)
        for   (   j=1;j <=9;j++)
          k[i][j]=0;
         
 
      k[1][2]=9;
      k[1][6]=4;
      k[1][9]=5;
   
      k[2][3]=3;
      k[2][5]=6;
      k[2][7]=4;
   
      k[4][3]=8;
      k[4][6]=2;
     
      k[5][1]=9;
      k[5][2]=5;
      k[5][5]=8;
      k[5][9]=3;
     
      k[6][3]=7;
      k[6][5]=9;
      k[6][7]=8;
      k[6][8]=1;
       
      k[7][2]=4;
      k[7][7]=3;
     
      k[8][1]=8;
      k[8][3]=2;
      k[8][5]=3;
      k[8][9]=1;
       
      k[9][2]=1;
      k[9][4]=2;
      k[9][6]=9;
      k[9][9]=4;
 
for   (i=1;i <=9;i++)
  {//   System.out.print( "*   ");
  for   (j=1;j <=9;j++)
  {     //System.out.print( "#   ");
  flag=0;
            //       x=1;
        if   (k[i][j]==0)
          {
                 
                for(x=1;x <=9;x++)
                    {  
                    flag=0;
                    for(ii=1;ii <=9;ii++)
                      {  
                   
                      if   (j!=ii)
                      {
                          if   (k[i][ii]==x)
                              {