MFC输出蛇行矩阵

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC输出蛇行矩阵相关的知识,希望对你有一定的参考价值。

这是一道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=0;i<EDGE;i++)
    
        for(int j=0;j<EDGE;j++)
        
            if(a[i][j]==0)
			
			
            else
			
				str1.Format("%d",a[i][j]);
				pDC->TextOut(20+row*30, 20+col*60, str1);
			
			col=col+1;
        
		row = row + 1;
		col = 0;
    

 输出;


 若 #define EDGE 15,则输出如下;

斜线上的数字是连续的; 

以上是关于MFC输出蛇行矩阵的主要内容,如果未能解决你的问题,请参考以下文章

蛇形矩阵-题解

华为OJ076-蛇形矩阵

输出n∗n的蛇形矩阵

Java编码 蛇形矩阵的构建与遍历输出

蛇形三角矩阵

蛇形矩阵