蛇形方阵(C++)

题目描述
给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。
从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。
注意每个数字有都会占用 3 个字符,前面使用空格补齐。
样例输入

4

样例输出

  1  2  3  4
  5  6  7  8
  9 10 11 12
 13 14 15 16

下面附上C++代码:

#include 
#include 
#define ll long long
using namespace std;

ll s[1000][1000];

int main()
{
     
	int n, i = 1, j = 0, sum = 1;
	cin >> n;
	while (sum <= n * n)
	{
     
		while (s[i][++j] == 0 && j <= n)
		{
     
			s[i][j] = sum++;
		}
		j--;
		while (s[++i][j] == 0 && i <= n)
		{
     
			s[i][j] = sum++;
		}
		i--;
		while (s[i][--j] == 0 && j >= 1)
		{
     
			s[i][j] = sum++;
		}
		j++;
		while (s[--i][j] == 0 && i >= 1)
		{
     
			s[i][j] = sum++;
		}
		i++;
	}
	for (i = 1; i <= n; i++)
	{
     
		for (j = 1; j <= n; j++)
		{
     
			cout << setw(3) << setfill(' ') << s[i][j];
		}
		cout << endl;
	}
	return 0;
}

你可能感兴趣的:(C++小碎碎念)