问题描述
如下图所示,小明用从 1 开始的正整数 “蛇形” 填充无限大的矩阵。
容易看出矩阵第二行第二列中的数是 5,请你计算矩阵中第 20 行第 20 列的数是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:761
思路:根据层数为奇数还是偶数,来确定数字的填充方向
#include <iostream>
#include <algorithm>
using namespace std;
int a[401][401];
int main() {
int k = 1, n, m;;
for (int i = 2; i <= 401; i++) {//层数
if (i % 2 == 0) {//奇数层,从上到下,注意i是从2开始的
for (int j = i - 1; j >= 1; j--) {
a[j][i - j] = k++;
}
}
else { //偶数层,从下到上
for (int j = 1; j < i; j++) {
a[j][i - j] = k++;
}
}
}
cin >> m >> n;
cout << a[m][n];
}
蓝桥杯中这是一道填空题,大家也可以找对角线的规律。