打印蛇形矩阵

来源:互联网 发布:淘宝自动回复语大全 编辑:程序博客网 时间:2024/05/16 00:27

题目来自小米校招笔试题

题目:打印蛇形矩阵

思路:一次打印一个斜杠

代码:

#include <iostream>using namespace std;void PrintUp(int **pArrMatrix,int nCurX,int nCurY,int nLen,int& nCount);void PrintDown(int **pArrMatrix,int nCurX,int nCurY,int nLen,int& nCount);void PrintDown(int **pArrMatrix,int nCurX,int nCurY,int nLen,int& nCount){//出口if (nCurX >= nLen || nCurX < 0 || nCurY >= nLen || nCurY < 0){return;}//赋值for (;nCurX < nLen && nCurY >= 0;nCurX++,nCurY--){pArrMatrix[nCurX][nCurY] = nCount++;}if (nCurX <= nLen - 1)// 处理上三角{PrintUp(pArrMatrix,nCurX,nCurY + 1,nLen,nCount);}else{PrintUp(pArrMatrix,nCurX - 1,nCurY + 2,nLen,nCount);}}void PrintUp(int **pArrMatrix,int nCurX,int nCurY,int nLen,int& nCount){//出口if (nCurX >= nLen || nCurX < 0 || nCurY >= nLen || nCurY < 0){return;}//赋值for (;nCurX >= 0 && nCurY < nLen;nCurX--,nCurY++){pArrMatrix[nCurX][nCurY] = nCount++;}if (nCurY <= nLen - 1)//上三角{PrintDown(pArrMatrix,nCurX + 1,nCurY,nLen,nCount);}else{PrintDown(pArrMatrix,nCurX + 2,nCurY - 1,nLen,nCount);}}void Print(int nLen)//主函数{int nCount = 1;int **pArrMatrix = new int *[nLen];for (int i = 0;i < nLen;i++){pArrMatrix[i] = new int[nLen];memset(pArrMatrix[i],0,sizeof(int) * nLen);}PrintDown(pArrMatrix,0,0,nLen,nCount);//输出for (int i = 0;i < nLen;i++){for (int j = 0;j < nLen;j++){cout<<pArrMatrix[i][j]<<" ";}cout<<endl;}}


原创粉丝点击