/**
* 6-3
* 编程实现如下要求的螺旋矩阵
* 螺旋方阵存放在n*n的二维数组中并将其打印输出
* 要求 n 由程序读入
* 数字螺旋方阵由程序自动生成
* (非人为的初始化或逐个输入)
*/
import java.io.*; import java.util.*; public class Test{ public static void main(String[] args){ /*声明一个维数是n的数组*/ int n=0; System.out.print("请输入螺旋矩阵的维数n:"); Scanner read = new Scanner(System.in); n = read.nextInt(); int array[][] = new int[n][n]; /*为数组中的各个元素赋值*/ int elem = 1; //初始化第一个元素的值为1 int cycleNumber=0; //判断循环的次数 if (n % 2 != 0) cycleNumber=n/2+1; else cycleNumber=n/2; for(int i = 0; i < cycleNumber; i++){ //从外到内开始循环 for (int j = i; j < n-i; j++) //从左到右赋值 { array[i][j]=elem; elem++; } for (int k = i+1; k < n-i; k++) //从上到下赋值 { array[k][n-i-1]=elem; elem++; } for (int l = n-i-2; l >= i; l--)//从右到左赋值 { array[n-i-1][l]=elem; elem++; } for (int m = n-i-2; m > i; m--) //从下到上赋值 { array[m][i]=elem; elem++; } } /*输出数组*/ for(int i = 0; i < n; i++) { for (int j = 0; j < n; j++) System.out.printf("%-3d", array[i][j]); System.out.println(); } } }
时间: 2024-12-21 11:27:58