1172: 回形方阵

来源:互联网 发布:中邮证券软件 编辑:程序博客网 时间:2024/05/16 09:19

题目

Description

输出一个回形方阵,具体可见样例
Input

一个整数n (0 < n < 10)
Output

一个方阵,每个数字的场宽为2
Sample Input

8
Sample Output

8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8
8 7 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8
8 7 6 5 5 5 5 5 5 5 5 5 5 5 6 7 8
8 7 6 5 4 4 4 4 4 4 4 4 4 5 6 7 8
8 7 6 5 4 3 3 3 3 3 3 3 4 5 6 7 8
8 7 6 5 4 3 2 2 2 2 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1 1 1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1 1 1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 2 2 2 2 3 4 5 6 7 8
8 7 6 5 4 3 3 3 3 3 3 3 4 5 6 7 8
8 7 6 5 4 4 4 4 4 4 4 4 4 5 6 7 8
8 7 6 5 5 5 5 5 5 5 5 5 5 5 6 7 8
8 7 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8
8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8


代码块

//找到规律就可以了,我的方法,是拆成一个晓得方阵
1 2 3 4 5 6 7 8
2 2 3 4 5 6 7 8
3 3 3 4 5 6 7 8
4 4 4 4 5 6 7 8
5 5 5 5 5 6 7 8
6 6 6 6 6 6 7 8
7 7 7 7 7 7 7 8
8 8 8 8 8 8 8 8
就很容易了

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner cn = new Scanner(System.in);        int n = cn.nextInt();        int len = n * 2 + 1;        int[][] num = new int[n][n];        for (int i = 0; i < n; i++)            for (int j = 0; j < n; j++) {                num[i][j] = j + 1;            }        for (int i = 0; i < n; i++) {            for (int j = 0; j < i; j++) {                num[i][j] = i + 1;            }        }        int[][] nn = new int[len][len];        for (int i = 0; i < n; i++) {            for (int j = 0; j < n; j++) {                nn[i][j] = num[n - i - 1][n - j - 1];            }        }        for (int i = 0; i < n; i++) {            nn[i][n] = n - i;        }        for (int i = 0; i < n; i++) {            for (int j = n + 1; j < len; j++) {                nn[i][j] = num[n - i - 1][j - n - 1];            }        }        for (int i = 0; i < n; i++) {            nn[n][i] = n - i;        }        for (int i = n + 1; i < len; i++) {            for (int j = 0; j < n; j++) {                nn[i][j] = num[i - n - 1][n - j - 1];            }        }        for (int i = n; i < len; i++) {            nn[i][n] = i - n;        }        for (int i = n + 1; i < len; i++) {            for (int j = n + 1; j < len; j++) {                nn[i][j] = num[i - n - 1][j - n - 1];            }        }        for (int i = n; i < len; i++) {            nn[n][i] = i - n;        }        for (int i = 0; i < len; i++) {            for (int j = 0; j < len; j++) {                System.out.print(" " + nn[i][j]);            }            System.out.println();        }    }}