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

 我来答
匿名用户
2013-12-02
展开全部
代码:
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<r)add(y, ++x);//未遇到右边界
if(y<d){//遇到右边界且未遇到下边界
r--;
down();
}
}
private static void up(){
while(y>u)add(--y, x);//未遇到上边界
if(x<r){//遇到上边界且未遇到右边界
u++;
right();
}
}
private static void down(){
while(y<d)add(++y, x);//未遇到下边界
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<a.length;i++){
for(int j=0;j<a.length;j++){
System.out.print(a[i][j]+"\t");
}System.out.println();}
}

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

输出结果:
匿名用户
2013-12-02
展开全部
能再说清楚点吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式