编程序,显示螺旋方阵—java实现4*4螺旋方阵

    科技2024-10-09  23

    将代码中的n修改,可实现任意n*n的螺旋方阵,也可将其改为输入值

    package 课本例题; //螺旋方阵.java public class Test_2_3_螺旋方阵 { public static void main(String[] args) { // TODO 自动生成的方法存根 int n=4;//螺旋方阵的行列数:4*4 int number=1;//数据的初始值 int arry[][]=new int[n][n];//初始化一个n*n的二维数组用于存放数据 int m;//m为螺旋方阵的螺旋圈数 if(n%2==0) m=n/2;//如果n为偶数,其螺旋圈数为n/2 else m=n/2+1;//如果n为奇数,其螺旋圈数为n/2+1 for(int i=0;i<m;i++) {//i为当前的第i圈,从外到内螺旋m圈 for(int j=i;j<n-i;j++) {//从左往右的行,j为第几列 arry[i][j]=number; number++; } for(int k=i+1;k<n-i;k++) {//从上往下的列,n-i-1为矩阵第几列, //k为第几行,为了不与“从左往右的行”的最后一个数据重叠,故行数i+1即多+1往下移动一行 arry[k][n-i-1]=number; number++; } for(int x=n-i-2;x>=i;x--) {//从右往左的行,n-i-1为矩阵的第几行 //x为第几列,为了不与“从上往下的列”的最后一个数据重叠,故列数x=n-i-2即多-1往左移动一列 arry[n-i-1][x]=number; number++; } for(int y=n-i-2;y>i;y--) {//从下往上的列,i为矩阵的第几列 //y为第几行,为了不与“从右往左的行”的最后一个数据重叠,故行数y=n-i-2即多-1往上移动一行 //为了不与“从左往右的行”的第一个数据重叠,故行数y>i即多+1往下移动一行 arry[y][i]=number; number++; } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { System.out.print(arry[i][j]+"\t"); } System.out.println();//每输出完成一行就换行 } } }

    运行结果截图

    Processed: 0.011, SQL: 8