0
点赞
收藏
分享

微信扫一扫

java 蛇形填数/回形数格式方阵的实现

丹柯yx 2022-04-14 阅读 52
eclipsejava

要求:

从键盘输入一个整数(1~20) 

则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出: 1 2 

                                4 3 

输入数字3,则程序输出: 1 2 3 

                                           8 9 4 

                                           7 6 5 

实现效果:

        

 实现代码:

import java.util.Scanner;

public class mianshiShe {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		System.out.print("从键盘输入一个整数(1~20):");
		int n = scanner.nextInt();
		
		int[][] arr = new int[n][n];
		int num = 0;//应显示的数据
		int Min_X = 0;//x轴最小值
		int Min_Y = 0;//y轴最小值
		int Max_X = n-1;//x轴最大值
		int Max_Y = n-1;//y轴最大值
		
		while (Min_X<=Max_X) {
			for (int i = Min_X; i <= Max_X; i++) {
				arr[Min_Y][i] = ++num;
			}
			Min_Y++;
			for (int i = Min_Y; i <= Max_Y; i++) {
				arr[i][Max_X] =++ num;
			}
			Max_X--;
			for (int i = Max_X; i >= Min_X; i--) {
				arr[Max_Y][i] = ++num;
			}
			Max_Y--;
			for (int i = Max_Y; i >=Min_Y; i--) {
				arr[i][Min_X] = ++num;
			}
			Min_X++;
		}
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length; j++) {
//				String space = (arr[i][j] + "").length() == 1 ? "0" : "";//如果是一位数的在前面给补个零
				System.out.print(arr[i][j]+"\t");
//				System.out.print(space + arr[i][j]+" ");
			}
			System.out.println();
		}
	}

}

代码思路辅助图:

        

 

 

举报

相关推荐

0 条评论