题目
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如下图所示,小明用从
1
1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?
运行限制
最大运行时间:1s
最大运行内存: 128M
分析
很有趣吧,好像也算是新手经典数组题了,解题就是在第一行了就先右移一个单位再开始向左下移动,在第一列了就先下移一个单位再开始向右上移动,如此循环。
代码
代码如下:
#include<bits/stdc++.h>
using namespace std;
int mp[200][200], row = 0, col = 0, cnt = 1;
int main() {
mp[0][0] = 1;
while(!mp[19][19]) {
//右移
mp[row][++col] = ++cnt;
//左下方
while(col) {
mp[++row][--col] = ++cnt;
}
//下移
mp[++row][col] = ++cnt;
//右上方
while(row) {
mp[--row][++col] = ++cnt;
}
}
/*for(int i = 0; i < 20; i++) {
for(int j = 0; j < 20; j++) {
cout << mp[i][j] << " ";
}
cout << endl;
}*/
cout << mp[19][19];
return 0;
}
小结
很值得做的典例。