题目描述
如下图所示,小明用从1开始的正整数“蛇形”填充无限大的矩阵。容易看出矩阵第二行第二列中的数是
5。请你计算矩阵中第20行第20列的数是多少?
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …
想到了 行数奇偶时分别考虑 就是不知道怎么实现 代码写对了 也打印不出来那种形式
#include <stdio.h>
#include <string.h>
#include<algorithm>
#include<math.h>
using namespace std;
const int N=1e6+10;
int a[110][110];
int main()
{
int s=1;
for(int i=1; i<=100; i++) //行
{
if(i%2) //奇数 从下往上
{
for(int j=i,k=1;j>=1&&k<=i;j--,k++)
{
a[j][k]=s++;
// printf("%d ",a[j][k]);
}
// printf("\n");
}
else //从上往下
{
for(int j=1,k=i;j<=i&&k>=1;j++,k--)
{
a[j][k]=s++;
// printf("%d ",a[j][k]);
}
// printf("\n");
}
}
printf("@@@@@%d",a[20][20]);
return 0;
}