运行后。 
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)
                 {
                  flag=1;
                
                 }
                }
          }
         //***************************************************
       
       for(jj=1;jj<=9;jj++)
            { 
          
             if (i!=jj)
             {
               if (k[jj][j]==x)
                 {
                  flag=1;
                
                 }
            
            
            
            
            }
            } 
          
           if (flag==0)
           {
           k[i][j]=x;   //这里是给值的。 重点
          
           }
          
         
          
          }
      }
 
  }
 
 
}
 
  for ( i=1;i<=9;i++)
   { 
      for ( j=1;j<=9;j++)
    {
    
    System.out.print(k[i][j]); 
    System.out.print("  "); 
    }
    System.out.println("");

}

System.out.println("***************************");
}
}

解决方案 »

  1.   

    坐在椅子上帮"jtmfg()"顶,
    呵呵
      

  2.   

    看了半天,才发现这个是“数独”,算法是很复杂的,解数独的算法网上有很多的,自己找找看吧,在这里必要重复发明轮子吧。我在网上看到一个挺不错的,自己去研究一下吧:
    http://bbs.bc-cn.net/dispbbs.asp?boardid=8&id=146075