1090: 螺旋方阵

来源:互联网 发布:古生物学与地层学知乎 编辑:程序博客网 时间:2024/05/28 05:16

网址:http://begin.lydsy.com/JudgeOnline/problem.php?id=1090
1090: 螺旋方阵
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 218 Solved: 130
[Submit][Status][Web Board]
Description
输出一个形如样例如的螺旋方阵
Input
一个整数n(0<n<10)
Output
一个n行方阵,每行n个数,每个数场宽为3
Sample Input
5
Sample Output
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
HINT
Source
AC代码:
package 螺旋方阵0090;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {    Scanner input = new Scanner(System.in);    int number = input.nextInt();    int[][]array = new int[number][number];    init(array);}private static void init(int[][] a) {    int num=1;    int N = a.length;      int i=0,j=0,m=0;      if(N%2==0)        m=N/2;       else        m=N/2+1;       for(i=0;i<=m-1;i++){         for(j=i;j<=N-i-1;j++){    //输出第一行1,2,3,4(第一次循环);输出13,14(第二次循环)        a[i][j]=num;        num++;       }        for(j=i+1;j<=N-i-1;j++) {        a[j][N-i-1]=num;            //输出右侧的5,6,7(第一次循环)输出15(第二次循环)        num++;       }         for(j=N-i-2;j>=i;j--){        a[N-i-1][j]=num;            //输出8,9,10(第一次循环)输出16(第二次循环)        num++;       }        for(j=N-i-2;j>=i+1;j--){        a[j][i]=num;                //输出11 12(只有一次循环)        num++;       }       }       for(i=0;i<N;i++){       for(j=0;j<N;j++){        System.out.print(String.format("%3d",a[i][j]));       }       System.out.println();      }}

}

原创粉丝点击