package com.java;
public class PrintFangZhen {
/**
* 打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
* 1 2 3 4
* 12 13 14 5
* 11 16 15 6
* 10 9 8 7
*
*/
public static void main(String[] args) {
int n = 4;
if (n <= 0) {
System.out.println("n必须大于0!");
return;
}
int[][] arr = method(n);
traverse(arr);
}
/**
* 按从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列,并存到一个二维数组中
*
* @param n
* 这个方阵的边长
* @return 一个二维数组
*/
public static int[][] method(int n) {
// 定义一个储存数字的二维数组
int[][] arr = new int[n][n];
// 定义一个count计数,count即为数组中的元素
int count = 0;
int i = 0, j = 0;
while (true) {
// 当n为1的时候,直接存入数组中并结束循环
if (n == 1) {
arr[0][0] = 1;
break;
}
// 当一个元素的上、右、下、左的值不是0的时候;或者是当其上和右有值,并且左和下越界时,结束循环
if ((i - 1 >= 0 && j + 1 <= n - 1 &
打印螺旋式方阵
最新推荐文章于 2022-11-14 17:46:53 发布
该篇博客介绍了一个Java程序,用于打印等长的二维数组,数组中的数字按照从外向内的螺旋顺序排列。程序首先定义了一个二维数组并初始化计数器,然后通过判断边界条件,动态更新行和列坐标,依次填充数组元素,最终实现螺旋式打印效果。
摘要由CSDN通过智能技术生成