A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:

1        2        3        4
12        13        14        5
11        16        15        6
10        9        8        7


答案:
package test7;

import java.util.Scanner;

public class Test7 {

        public static void main(String[] args) {
                Scanner input = new Scanner(System.in);
                int n = input.nextInt();
                int[][] arr = new int[n][n];
                int l = 0,r=n,s=0,x=n;
                int k = 1;
                while(k<=n*n){
                        for(int i=l;i<r;i++){
                                arr[s][i]=k;
                                k++;
                        }
                        s++;
                        for(int i=s;i<x;i++){
                                arr[i][r-1]=k;
                                k++;
                        }
                        r--;
                        for(int i=r-1;i>=l;i--){
                                arr[x-1][i]=k;
                                k++;
                        }
                        x--;
                        for(int i=x-1;i>=s;i--){
                                arr[i][l]=k;
                                k++;
                        }
                        l++;
                }
                for(int i=0;i<n;i++){
                        for(int j=0;j<n;j++){
                                System.out.print(arr[i][j]+"\t");
                        }
                        System.out.println();
                }
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马