原题:
如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?
先请看代码,再讲解思路:
#include <stdio.h>
int arr[50][50]={0};
int main()
{
int i,j,pen=1;
for(i=1;i<=50;i++)
{
for(j=1;j<=i;j++)
{
if(i%2==0)
arr[i][i-j+1]=pen;
else
arr[i][j]=pen;
pen++;
}
}
printf("%d",arr[39][20]);
return 0;
}
解析思路:
题目中要求我们求第20行第20列的数,而我的代码中输出的arr实际情况是
1
3 2
4 5 6 ....
所以说我要做的就是将arr数组的数横坐标向上置顶,纵坐标保持不变就可以得到我们的蛇行数组,所以题目中的第20行第20列中的那个数,实际上就是我们arr数组的第39行,第20列。