怎么做? 异形方阵 望解答!!

边长为 n 的数字方阵,n=1 时仅含数字 1,之后 n 每增加 1,就在 n−1 的方阵基础上,在右、下加一层数字 n。例如 n=3 时,方阵如下:

1 2 3
2 2 3
3 3 3

给出 n ,请你输出对应的数字方阵。

输入
输入一个数n(0<n<=20)
输出
输出边长为 n 的数字方阵。
数据范围
0<n<=20
输入样例
4
输出样例
1 2 3 4
2 2 3 4
3 3 3 4
4 4 4 4

好兄弟

#include <bits/stdc++.h>
using namespace std;
int  a[40][40];
int main()
{
  int n,i,j;
  cin>>n;
  for(i=n; i>=1; i--)
    for(j=n; j>=1; j--)
    {
      a[i][j]=j;
      a[j][i]=j;
    }

  for(i=1; i<=n; i++)
  {
    for(j=1; j<=n; j++)
    {
      cout<<a[i][j]<<" ";
    }
    cout<<endl;
  }
  return 0;
}