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 hereCString 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<ia[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,則輸出如下;
斜線上的數字是連續的;?
總結
- 上一篇: 初步了解Windows应用程序内存结构
- 下一篇: ACM基础题 - 求矩形个数