java数组的小程序!

用java写一个12345161718196152415207142322218131211109好像要用数组做!... 用java写一个
1 2 3 4 5
16 17 18 19 6
15 24 15 20 7
14 23 22 21 8
13 12 11 10 9
好像要用数组做!
展开
 我来答
随我心所欲
2010-11-18 · TA获得超过492个赞
知道小有建树答主
回答量:497
采纳率:0%
帮助的人:630万
展开全部
/*
* 本方法也是采用类似绕圈圈的方法给数组赋值的(→↓←↑如此循环)
*/
static int[][] test(int lenght) {
//定义数组
int[][] rs = new int[lenght][lenght];
//方向,1表示从左往右赋值,2表示向下,3向右,4向上
int fangxiang = 1;
//上一次的坐标
int x = -1, y = 0;
//当前坐标
int tx=-1,ty=0;
//填充的数值
int i = 1;
while (i <= lenght * lenght) {
//根据方向判断应该是哪个坐标加减
if (fangxiang == 1)
tx++;
else if (fangxiang == 2)
ty++;
else if (fangxiang == 3)
tx--;
else if (fangxiang == 4)
ty--;
//如果该坐标在数组内,并且还没有赋值(也就是还没有越界并且没有碰壁)
if(tx>-1 && ty>-1 && tx < lenght && ty < lenght && rs[ty][tx] == 0){
rs[ty][tx] = i;
//记录此次的坐标
x=tx;
y=ty;
i++;
}else{//若不然,坐标返回上次的坐标,并且改变方向
tx=x;
ty=y;
fangxiang++;
if (fangxiang > 4)
fangxiang = 1;
}
}
return rs;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式