java矩阵数据回环,回环矩阵小程序

一个N*N的矩阵回环赋值如:

6ac338fcd220

20161101170927.png

程序如下:

import java.util.Arrays;

public class ArrayNumber{

private static final int N = 16; //定义矩阵大小

private static int[][] numberArray; //存放矩阵数据的二维数组

public static void main(String[] args){

numberArray = new int[N][N];

numberArray[0][0] = 1;

RIGHT(numberArray, 0, 0);

for(int i = 0; i < N; i++){

System.out.println(Arrays.toString(numberArray[i]));

}

}

//二维数组向右赋值

private static void RIGHT(int[][] nArray,int x,int y){

int maxY = nArray[x].length;

for(int i = 0; i < maxY - 1; i++){

if(nArray[x][y+1] > 0) break;

y++;

nArray[x][y] = nArray[x][y - 1] + 1;

}

DOWN(nArray, x, y);

}

//二维数组向下赋值

private static void DOWN(int[][] nArray,int x,int y){

int maxX = nArray.length;

for(int i = 0; i < maxX - 1; i++){

if(nArray[x + 1][y] > 0) break;

x++;

nArray[x][y] = nArray[x - 1][y] + 1;

}

LEFT(nArray, x, y);

}

//二维数组向左赋值

private static void LEFT(int[][] nArray,int x,int y){

for(int i = y; i > 0; i--){

if(nArray[x][y - 1] > 0) break;

y--;

nArray[x][y] = nArray[x][y + 1] + 1;

}

UP(nArray, x, y);

}

//二维数组向上赋值

private static void UP(int[][] nArray,int x,int y){

for(int i = x; i > 1; i--){

if(nArray[x - 1][y] > 0) break;

x--;

nArray[x][y] = nArray[x + 1][y] + 1;

}

int maxX = nArray.length;

int maxY = nArray[x].length;

if(nArray[x][y] == N * N) return;

else RIGHT(nArray, x, y);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值