蛇形方阵(C++)

Posted 小张不胖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蛇形方阵(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 <iostream>
#include <iomanip>
#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++)的主要内容,如果未能解决你的问题,请参考以下文章

蛇形方阵(C++)

P5731 深基5.习6蛇形方阵

蛇形方阵

P5731 深基5.习6蛇形方阵

蛇形方阵

蛇形矩阵