目 录CONTENT

文章目录

753. 平方矩阵 I

Gz
Gz
2022-06-30 / 0 评论 / 0 点赞 / 205 阅读 / 858 字 / 正在检测是否收录...

753. 平方矩阵 I

输入整数 NN,输出一个 NN 阶的回字形二维数组。

数组的最外层为 11,次外层为 22,以此类推。

输入格式

输入包含多行,每行包含一个整数 NN。

当输入行为 N=0N=0 时,表示输入结束,且该行无需作任何处理。

输出格式

对于每个输入整数 NN,输出一个满足要求的 NN 阶二维数组。

每个数组占 NN 行,每行包含 NN 个用空格隔开的整数。

每个数组输出完毕后,输出一个空行。

数据范围

0≤N≤1000≤N≤100

输入样例:

1
2
3
4
5
0

输出样例:

1

1 1
1 1

1 1 1
1 2 1
1 1 1

1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1

1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

题解:

import java.util.*;

public class Main {
    public static void main(String[] args)throws Exception {
        Scanner scanner = new Scanner(System.in);
        int n;

        int[][] a = new int [110][110];

        do {
            n = scanner.nextInt();


            //对称写法
            /*
            for (int i = 0; i < n; i++) {
                for (int j = i; j < n - i; j++) {
                    a[j][i] = a[i][j] = i + 1;
                    a[j][n - i -1] = a[n - i - 1][j] = i + 1;
                }
            }

            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    System.out.print(a[i][j]+" ");
                }
                System.out.println();
            }

             */
            
            
            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= n; j++) {
                    System.out.print(Math.min(Math.min(i, j),Math.min(n - i + 1, n -j + 1))+" ");
                }
                System.out.println();
            }
            if (n!=0) 
            System.out.println();
             

        } while (n-- !=0);



    }
}
0

评论区