13751652677 发表于 2016-9-6 15:45:59

为什么第二个方法不能正常打印出结婚

/** * 和为15的棋盘游戏,要求从1到9的九个数不重复填入3*3棋盘的方格中。各行各列及对角线和为15, * @author 刘焕濠 * */public class GridGame {                int[][] array;        int count=1;        public GridGame()        {                System.out.println("调用了构造函数");                array=new int;        }        public void showGrid()        {                //System.out.println("调用了打印函数");                int i,j;                for(i=0;i<array.length;i++)                {                        for(j=0;j<array.length;j++)                        {                                System.out.print(array+" ");                        }                        System.out.println();                }                System.out.println();        }        //***********************************************************        /*       * quetion:同样的实现原理,为什么用了for循环就执行错误?       *        *        * private boolean datachecksumrow()       {       int i,j,k=0;       for(i=0;i<array.length;i++)       {       for(j=0;j<array.length;j++)       k=k+array;       if(k!=15)       return false;       }       return true;       }       private boolean datachecksumcolumn()       {       int i,j,k=0;       for(i=0;i<array.length;i++)       {       for(j=0;j<array.length;j++)        k+=array;       if(k!=15)       return false;       }       return true;       }       private boolean dataCheck()       {       if(!datachecksumrow())       return false;       if(!datachecksumcolumn())       return false;       if(array+array+array!=15)       return false;       if(array+array+array!=15)       return false;       return true;       }*/        //*********************************************************8        privateboolean dataCheck()        {                //System.out.println("调用了检查函数");                int i,j,k=0;                /*for(i=0;i<array.length;i++)                {                                                for(j=0;j<array.length;j++)                        k+=array;                        //System.out.println("k="+k);                        if(k!=15)                                return(false);                }                                for(k=0,i=0;i<3;i++)                {                        for(j=0;j<3;j++)                        k+=array;                        if(k!=15)                        {                                return(false);                        }                }*/                     if(array+array+array!=15)                       return false;                       if(array+array+array!=15)                       return false;                       if(array+array+array!=15)                       return false;                       if(array+array+array!=15)                       return false;                       if(array+array+array!=15)                       return false;                       if(array+array+array!=15)                       return false;                if((array+array+array)!=15)                        return(false);                if((array+array+array)!=15)                        return(false);                return(true);        }        public void arrage()        {                System.out.println("调用了穷举函数");                int sum=1;                for(int i=1;i<=9;i++)                {                        for(int j=1;j<=9;j++)                        {                                if(i==j)                                        continue;                                for(int k=1;k<=9;k++)                                {//                                        System.out.println("函数到达k这里");                                        if(k==j||k==i)                                                continue;                                        for(int l=1;l<=9;l++)                                        {                                                if(l==k||l==j||l==i)                                                        continue;                                                for(int m=1;m<=9;m++)                                                {                                                        //System.out.println("函数到达k这里");                                                        if(m==k||m==j||m==l||m==i)                                                                continue;                                                        for(int n=1;n<=9;n++)                                                        {                                                                if(n==k||n==m||n==j||n==l||n==i)                                                                        continue;                                                                for(int o=1;o<=9;o++)                                                                {                                                                        //System.out.println("函数到达o这里");                                                                        if(o==n||o==m||o==j||o==i||o==l||o==k)                                                                                continue;                                                                        for(int p=1;p<=9;p++)                                                                        {                                                                                        //System.out.println("函数到达p这里");                                                                                if(p==n||p==m||p==j||p==i||p==l||p==k||p==o)                                                                                        continue;                                                                                for(int q=1;q<=9;q++)                                                                                {                                                                                        if(q==n||q==m||q==j||q==l||q==i||q==k||q==o||q==p)                                                                                                continue;                                                                                        array=i;                                                                                        array=j;                                                                                        array=k;                                                                                        array=l;                                                                                        array=m;                                                                                        array=n;                                                                                        array=o;                                                                                        array=p;                                                                                        array=q;                                                                                        //System.out.println("布局结束");                                                                                        //showGrid();                                                                                        if(dataCheck())                                                                                        {                                                                                                System.out.println("匹配成功");                                                                                                System.out.println("=="+sum+"==");                                                                                                sum++;                                                                                                showGrid();                                                                                        }                                                                                }                                                                        }                                                                }                                                        }                                                }                                        }                                }                        }                }        }        public static void main(String[] args)        {                GridGame game=new GridGame();                game.arrage();                System.out.println("程序结束");        }}
页: [1]
查看完整版本: 为什么第二个方法不能正常打印出结婚