java问题 1,2,3 8,9,4 7,6,5 这种逻辑通过java代码怎么实现,怎么写

2025-02-26 08:35:32
推荐回答(2个)
回答1:

代码:
package com.ufotable.test;

public class Test30 {
private static int l,r,u,d;//定义上下左右边界
private static int[][] a=new int[0][0];//数组
private static int y=0,x=0;//初始化坐标
private static int step,temp;//步长,上一个数组的值
private static void add(int y,int x){
temp+=step;a[y][x]=temp;
}
private static void left(){
while(x>l)add(y, --x);//未遇到左边界
if(y>u){//遇到左边界且未遇到上边界
l++;up();
}
}
private static void right(){
while(x if(y r--;
down();
}
}
private static void up(){
while(y>u)add(--y, x);//未遇到上边界
if(x u++;
right();
}
}
private static void down(){
while(y if(x>l){//遇到下边界且未遇到左边界
d--;
left();
}
}
private static void fun(int start,int step,int length){//产生数组(起始值,步长,矩阵边长)
Test30.step=step;
l=u=0;r=d=length-1;
a=new int[length][length];
a[0][0]=temp=start;
up();
}

public static void print(){//输出矩阵
for(int i=0;i for(int j=0;j System.out.print(a[i][j]+"\t");
}System.out.println();}
}

public static void main(String[] args) {
fun(0,1,10);//测试
print();
}
}

输出结果:

回答2:

能再说清楚点吗