这是一道ACM基础题;
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形;
蛇形矩阵(Snake matrix)是矩阵的一种,常被应用在编程题目与数学数列中,需要提取每条斜线里最小的数字;
VC6,新建一个单文档工程;
先在视类CPP文件头部定义矩阵的大小,#define EDGE 5;
视类OnDraw()函数如下;
void CShxView::OnDraw(CDC* pDC)
{
CShxDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str1;
int row, col;
int a[EDGE][EDGE];
//根据蛇形矩阵的规律,对其进行赋值
for(int i=0;i<EDGE;i++)
{
for(int j=0;j<EDGE;j++)
{
a[0][0]=1;
if(j>=EDGE-i) //左上三角的特征j<i
a[i][j]=0;
else if(j==0) //先确定第一列,后面的数都与第一行以及所在的行序、列序有关
a[i][j]=a[i-1][j]+i;
else a[i][j]=a[i][j-1]+i+j+1;
}
}
//输出蛇形矩阵
row=0;
col=0;
for(i=