2899: 【例63.2】 回形方阵

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:2

题目描述

输入$n$打印回形方阵。

输入

输入$n$。

输出

一个方阵,每个数字的场宽为$2$。

样例输入 复制

8

样例输出 复制

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

提示

#include<bits/stdc++.h>
using namespace std;
int a[100][100],n;
void f(int x,int y,int n,int c){
    if(c<1) return ;
    for(int i=0;i<n;i++){
        a[x][y+i]=c;
        a[x+i][y]=c;
        a[x+n-1][y+i]=c;
        a[x+i][y+n-1]=c;
    }
    f(x+1,y+1,n-2,c-1);
}
int main(){
    cin>>n;
    f(1,1,2*n+1,n);
    for(int i=1;i<=2*n+1;i++){
        for(int j=1;j<=2*n+1;j++)printf("%2d",a[i][j]);
        printf("\n");
    }
    return 0;
}