【算法】蛇形填数

蛇形填数(斜着1234···)如下所示,从1开始正整数“蛇形”填充无限大的矩阵,请计算矩阵中第 2020 行第 2020 列的数是多少?

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

#include
using namespace std;
int main()
{
	int a[200][200] = { 0 };
	int row = 0, column = 0, num = 1;
	while (!a[19][19])
	{
		a[row][column++] = num++;//右移
		while (column)//一直往左下移动,直到column为0结束循环
		{
			a[row++][column--] = num++;
		}
		a[row++][column] = num++;//下移
		while (row)
		{
			a[row--][column++] = num++;//右上移
		}
	}
	cout << a[19][19];
	return 0;
}

你可能感兴趣的:(蓝桥杯,算法,c++,青少年编程,学习,蓝桥杯)