首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

蛇形填数,该如何处理

2013-06-25 
蛇形填数/** *程序目的,从1 开始 为数组赋值 赋值方式为蛇形 *形如 *10 11 12 1 *916 13 2 *815 14 3 *765

蛇形填数

/**
 *程序目的,从1 开始 为数组赋值 赋值方式为蛇形
 *形如
 *10 11 12 1
 *9  16 13 2
 *8  15 14 3
 *7  6  5  4
 *
 *
 */


import java.util.Scanner;
import java.util.Arrays;
public class LightPro {
public static void main(String args[]) {
// 4 4
int[][] a = new int[4][4];
int x,y;
int num = 0;
num = a[x = 0][y = 3] = 1;
for(int i = 0;i < 4;i++) {
Arrays.fill(a[i],0);
}
while(num < 16) {
while(x + 1 < 4 && a[x + 1][y] == 0) a[++x][y] = ++num; 
while(y - 1 >= 0 && a[x][y - 1] == 0) a[x][--y] = ++num;
while(x - 1 >= 0 && 0 == a[x - 1][y]) a[--x][y] = ++num;
while(y + 1 < 4 && 0 == a[x][y + 1]) a[x][++y] = ++num;
}
for(int i = 0;i < 4;i++) {
for(int j = 0;j < 4;j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}


请各位帮忙看看这个程序错在哪儿
[解决办法]

num = a[x = 0][y = 3] = 1;
for(int i = 0;i < 4;i++) {
            Arrays.fill(a[i],0);
}

前一句刚给a[0][3]赋的值,后一句就没了

热点排行