(java学习之路之重新开始)回型数程序实现,while for循环+二维数组知识巩固

将回型数矩阵抽象为带x轴和y轴的坐标图,建议你在纸上画一下,然后按代码的思路理一遍,就懂了。

抽象图:
在这里插入图片描述

实现代码:

package array.guigu.demo;

import java.util.Scanner;

public class ArrayDemo05 {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int n = scanner.nextInt();
		
		//创建一个矩阵即二维数组
		int[][] retNumArr = new int[n][n];
		//元素计数变量
		int count = 0;
		//x轴最小值
		int xMin = 0;
		//y轴最小值
		int yMin = 0;
		//x轴最大值
		int xMax = n - 1;
		//y轴最大值
		int yMax = n - 1;
		
		//当xMin和xMax相等时回形数矩阵构成
		while(xMin <=  xMax) {
			
			for(int x = xMin;x <= xMax;x++) {
				retNumArr[yMin][x] = ++count;
			}
			yMin++;
			
			for(int y = yMin;y <= yMax;y++) {
				retNumArr[y][xMax] = ++count;
			}
			xMax--;
			
			for(int x = xMax;x >= xMin;x--) {
				retNumArr[yMax][x] = ++count; 
			}
			yMax--;
			
			for(int y = yMax;y >= yMin;y--) {
				retNumArr[y][xMin] = ++count;
			}
			xMin++;
			
		}
		
		//遍历二维数组
		for(int i = 0;i < retNumArr.length;i++) {
			for(int j = 0;j < retNumArr.length;j++) {
				System.out.print(retNumArr[i][j] + "\t");
			}
			System.out.println();
		}
	}
}
发布了80 篇原创文章 · 获赞 69 · 访问量 8921

猜你喜欢

转载自blog.csdn.net/qq_43437122/article/details/105604037