p5731蛇形方阵c++
时间: 2023-12-02 10:43:18 浏览: 110
以下是C++实现蛇形方阵的代码,具体思路是按照题目要求,分别处理向上、向下、向左、向右四种情况,每次填入数字后更新当前位置和方向,直到填满整个方阵。
```c++
#include <iostream>
using namespace std;
const int N = 110;
int a[N][N];
int main()
{
int n;
cin >> n;
int x = 1, y = 1, d = 0;
for (int i = 1; i <= n * n; i ++ )
{
a[x][y] = i;
if (d == 0)
{
if (y == n || a[x][y + 1]) d = 1, x ++;
else y ++;
}
else if (d == 1)
{
if (x == n || a[x + 1][y]) d = 2, y --;
else x ++;
}
else if (d == 2)
{
if (y == 1 || a[x][y - 1]) d = 3, x --;
else y --;
}
else
{
if (x == 1 || a[x - 1][y]) d = 0, y ++;
else x --;
}
}
for (int i = 1; i <= n; i ++ )
{
for (int j = 1; j <= n; j ++ )
printf("%3d", a[i][j]);
puts("");
}
return 0;
}
```
阅读全文