10分求调
查看原帖
10分求调
1426514
An15163220501楼主2025/1/21 21:03

1010 分求调

# include <bits/stdc++.h>
using namespace std;

int a[50][50];

int main()
{
	int n;
	cin >> n;
	a[1][(n + 1) / 2] = 1;
	int x = 1,y = (n + 1) / 2;
	for (int i = 2;i <= n * n;i++)
	{
		int nx,ny;
		if (x == 1 && y != n)
		{
			nx = n;
			ny = y + 1;
		}
		else if (x != 1 && y == n)
		{
			nx = x - 1;
			ny = 1;
		}
		else if (x == 1 && y == n )
		{
			nx = x + 1;
			ny = ny;
		}
		else
		{
			if (!(a[x - 1][y + 1]))
			{
				nx = x - 1;
				ny = y + 1;
			}
			else
			{
				nx = x - 1;
				ny = y;
			}
		}
		a[nx][ny] = i;
		x = nx,y = ny;
	}
	for (int i = 1;i <= n;i++)
	{
		for (int j = 1;j <= n;j++)
			cout << a[i][j] << ' ';
		cout << endl;
	}
	return 0;
}

33 个测试点正确(配数据)
输入

11


输出

11


有人会错吗?

2025/1/21 21:03
加载中...