主要想的是数据模拟,就是一个一个将1,2,3。。。填到相应的位置
最后的输出多了一个回车,好在判题姬没判错
#include <cstdio>
#define MAXN 105
int a[MAXN][MAXN];
int next[1][2] = {-1,1};
int n;
int k=1;
bool inArea(int x,int y)
{
return x >= 0 && x < n && y >= 0 && y < n;
}
void func(int x,int y)
{
if(!inArea(x,y))
{
return;
}
a[x][y] = k++;
int x1 = x + next[0][0];
int y1 = y + next[0][1];
func(x1,y1);
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
func(i,0);
}
int m = n;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%d",a[i][j]);
if(j != m-1) printf(" ");
else printf("\n");
}
m--;
}
return 0;
}