欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二维数组

程序员文章站 2022-05-01 09:39:35
...
package com;

import java.util.Arrays;

public class ManyArray {
	int count = 0;
	int dcount = 0;

	public void printArray() {
		int[][] array = new int[5][5];
		array[0][0] = 1;
		setNumber(0, 0, array);
		for (int i = 0; i < 5; i++) {
			System.out.println(Arrays.toString(array[i]));
		}
	}

	public static void main(String[] args) {
		new ManyArray().printArray();
	}

	//逆时针设数
	public void setNumber(int i, int j, int[][] a) {
		//自左向右方向
		if (i < a.length - 1 && a[i][j + 1] == 0 && count != 4) {
			a[i][j + 1] = a[i][j] + 1;
			count++;
			setNumber(i, j + 1, a);
		} else if (i < a.length - 1 && a[i + 1][j] == 0) { //自上向下方向
			a[i + 1][j] = a[i][j] + 1;
			setNumber(i + 1, j, a);
		} else if (j > 0 && a[j][j - 1] == 0) {	//自右向左
			a[i][j - 1] = a[i][j] + 1;
			setNumber(i, j - 1, a);
		} else if (i >= 0 && a[i - 1][j] == 0) {// 自下向上方向
			a[i - 1][j] = a[i][j] + 1;
			dcount++;
			if (dcount == 3) {
				count = 0;
			}
			setNumber(i - 1, j, a);
		}
	}
}

 

相关标签: 二维数组