问题描述
如下图所示,小明用从 1 开始的正整数 “蛇形” 填充无限大的矩阵。
容易看出矩阵第二行第二列中的数是 5,请你计算矩阵中第 20 行第 20 列的数是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
找规律:
- 第一层的开头为 1,坐标为
(1, 1)
,行列之和为 2; - 第二层的开头为 2,坐标为
(2, 1)
,行列之和为 3; - 第三层的开头为 4,坐标为
(3, 1)
,行列之和为 4; - 第四层的开头为 7,坐标为
(1, 4)
,行列之和为 5;
#include <cstdio>
#include <iostream>
using namespace std;
int g[40][40];
int main()
{
int k = 1;
for (int i = 2; i <= 40; i ++) // 枚举行列之和
if(i % 2 == 0)
{
for (int j = 1; j < i; j ++) // 奇数层:从下到上
g[i - j][j] = k ++;
}
else
{
for (int j = i - 1; j >= 1; j --) // 偶数层:从上到下
g[i - j][j] = k ++;
}
for (int i = 1; i <= 20; i ++)
{
for (int j = 1; j <= 20; j ++) printf("%4d", g[i][j]);
cout << endl;
}
return 0;
}