关于Java基础编程的一个问题--回形魔方阵

来源:百度知道 编辑:UC知道 时间:2024/07/02 00:18:06
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

这是一组回形的数字,怎么才能这样输出来,哪位高人可以帮我解决一下。
那个方向我不会控制。谁可以写个代码让我看看,感激。。。。

//完成了,请楼主测试吧~~~ 这个就是模拟矩阵旋转的问题

public class TTT {

public static void main(String[] args){
//RC就是行列数,试试5 6 7 10等数值,都能正确输出,呵呵~~
int rc = 4;
int[][] dat = new int[rc][rc];

int count = 0;

//初始化数据
for(int i=0; i<rc; i++){
for(int j=0; j<rc; j++){
dat[i][j]=-1;
}
}
while(notFinished(dat,rc)){
for(int i=0; i<rc; i++){
int jj = -1;//存放未被填充数据的行
for(int j=0; j<rc; j++){
if(dat[j][i]==-1){
jj = j;break;
}
}
//找到了未填充的行在这里处理
if(jj>-1){
while(i<rc && dat[jj][i]==-1){
dat[jj][i++]=++count;
}
dat = rotate(dat,rc);
}
}
}

//这里是修正起始位置的
if(rc%2==1){
for(int i=0; i<3; i++)
dat = rotate(dat,rc);
}
else{
dat = rotate(dat,rc);
}

//打印结果
for(int i=0; i<rc; i++){
for(int j=0; j<rc; j++){
System.out.print(dat