1258: 螺旋矩阵

来源:互联网 发布:核聚变发电 知乎 编辑:程序博客网 时间:2024/06/06 02:17

题目

Description

给定一个正整数n(1<=n<=20),画出螺旋矩阵。
Input

输入:
多组测试数据,每组包括一个正整数n

Output

输出:
对应画出螺旋矩阵

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

代码块

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner cn = new Scanner(System.in);        while (cn.hasNext()) {            int n = cn.nextInt();            int[][] a = new int[n][n];            int c = 0, cout = 1;            int z = n * n;            while (cout <= z) {                int i = 0, j = 0;                for (i += c, j += c; j < n - c; j++) {                    if (cout > z)                        break;                    a[i][j] = cout++;                }//从左至右的循环                for (j--, i = i + 1; i < n - c; i++) {                    if (cout > z)                        break;                    a[i][j] = cout++;                }//从上至下的循环                for (i--, j = j - 1; j >= c; j--) {                    if (cout > z)                        break;                    a[i][j] = cout++;                }//从右至左的循环                for (j++, i = i - 1; i > c; i--) {                    if (cout > z)                        break;                    a[i][j] = cout++;                }//从下至上的循环                c++;            }            for(int i =0;i<n;i++){                for(int j =0;j<n;j++){                    System.out.print(a[i][j]+" ");                }                System.out.println();            }        }    }}
原创粉丝点击