关于蛇形矩阵问题
1.首先什么是蛇形矩阵呢?
如下图
1 | 2 | 6 | 7 | 15 | 16 |
---|---|---|---|---|---|
3 | 5 | 8 | 14 | 17 | |
4 | 9 | 18 | 26 | ||
10 | 12 | 19 | |||
11 | 20 | ||||
21 |
不难看出,第一列是一个以2个为一个长度的等比数列:
1,2,(+4x1),6,7,(+4x2),15,16。。。。。。
当我打算在C语言中用循环输出时,却怎么也不能输出答案。
#include<stdio.h>
int main()
{
int a[1000][1000];
int n;
int sum;
int count=0;//第一列偶数组序号
a[0][0]=1;
for(n=1;n<1000;n++)
{
if(n%2==1)
{
a[0][n]=a[0][n-1]+1;
}
else
{
count++;
a[0][n]=a[0][n-1]+4*count;
}
}
printf("%d",a[0][0]);
}
结果如图所示:
没有正确输出结果。
那么首先想怎么解决这个问题呢?
首先想到内存不够的情况,直接将
a[1000][1000]
//改为
a[100][100]