鱼C论坛

 找回密码
 立即注册
查看: 2220|回复: 0

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

[复制链接]
发表于 2016-9-6 15:45:59 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/** * 和为15的棋盘游戏,要求从1到9的九个数不重复填入3*3棋盘的方格中。各行各列及对角线和为15, * @author 刘焕濠 * */public class GridGame {                int[][] array;        int count=1;        public GridGame()        {                System.out.println("调用了构造函数");                array=new int[3][3];        }        public void showGrid()        {                //System.out.println("调用了打印函数");                int i,j;                for(i=0;i<array.length;i++)                {                        for(j=0;j<array[i].length;j++)                        {                                System.out.print(array[i][j]+" ");                        }                        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[i].length;j++)         k=k+array[i][j];         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[j][i];         if(k!=15)         return false;         }         return true;         }         private boolean dataCheck()         {         if(!datachecksumrow())         return false;         if(!datachecksumcolumn())         return false;         if(array[0][0]+array[1][1]+array[2][2]!=15)         return false;         if(array[0][2]+array[1][1]+array[2][0]!=15)         return false;         return true;         }*/        //*********************************************************8        private  boolean dataCheck()        {                //System.out.println("调用了检查函数");                int i,j,k=0;                /*for(i=0;i<array.length;i++)                {                                                for(j=0;j<array[i].length;j++)                        k+=array[i][j];                        //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[j][i];                        if(k!=15)                        {                                return(false);                        }                }*/                     if(array[0][0]+array[0][1]+array[0][2]!=15)                         return false;                         if(array[1][0]+array[1][1]+array[1][2]!=15)                         return false;                         if(array[2][0]+array[2][1]+array[2][2]!=15)                         return false;                         if(array[0][0]+array[1][0]+array[2][0]!=15)                         return false;                         if(array[0][1]+array[1][1]+array[2][1]!=15)                         return false;                         if(array[0][2]+array[1][2]+array[2][2]!=15)                         return false;                if((array[0][0]+array[1][1]+array[2][2])!=15)                        return(false);                if((array[0][2]+array[1][1]+array[2][0])!=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[0][0]=i;                                                                                        array[0][1]=j;                                                                                        array[0][2]=k;                                                                                        array[1][0]=l;                                                                                        array[1][1]=m;                                                                                        array[1][2]=n;                                                                                        array[2][0]=o;                                                                                        array[2][1]=p;                                                                                        array[2][2]=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("程序结束");        }}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 12:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表