为什么第二个方法不能正常打印出结婚
/** * 和为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]