|
发表于 2008-1-23 10:09:12
|
显示全部楼层
同心方阵法,自己在百度上可以查到算法,下面是我给的一段代码,有点垃圾,凑合用吧
public class exec {
//定义赋值变量和类似矩阵的二维数组
public static int incr=1;
public static int[][] a=new int[4][4];
//对二维数组赋值
public void evaluate(){
for(int i= 0; i< 4; i++) {
for (int j= 0; j< 4; j++) {
a[j]=incr++;
}
}
}
//进行算法(同心方阵法),偶数阶方阵(宫格)都可以这样解决
public void fun(){
for (int i= 0; i< 2; i++) {
for (int j= 0; j< 4; j++) {
if(i != j && i+j != 3){//判断是否是对角线元素
int c;
c=a[j];
a[j]=a[3-i][3-j];
a[3-i][3-j]=c;
}
}
}
}
//main函数进行测试
public static void main(String[] args) {
exec e=new exec();
e.evaluate();
e.fun();
for(int i = 0; i < 4; i++){
for (int j = 0; j < 4; j++) {
System.out.print(a[j]+",");
}
System.out.println();
}
}
}
测试结果:
1,15,14,4,
12,6,7,9,
8,10,11,5,
13,3,2,16, |
|