2016腾讯模拟笔试题

来源:互联网 发布:js定义数组并赋值 编辑:程序博客网 时间:2024/05/27 03:26

题目:
根据N输出蛇字形矩阵
矩阵按行输出

例如:
N=3
1 2 3
8 9 4
7 6 5

#include<iostream>#include<vector>using namespace std;//将整个图形看成是一层一层的正方形,然后在依次在//相应位置输入递增序列 void clockMatrix(int N){    int **a;    a = new int *[N];    for(int k=0;k<N;++k)a[k]=new int[N];    int i=0,j=N-1;    int dis=j-i;    a[0][0]=1;    while(dis>=1){        int m=i,n=j;        for(int l=i;l<=j;++l){            if(l!=0)a[i][l]=a[i][l-1]+1;            }        for(int l=i;l<=j;++l){            if(l!=i)a[l][j]=a[l-1][j]+1;            }        for(int l=j;l>=i;--l){            if(l!=j)a[j][l]=a[j][l+1]+1;            }        for(int l=j;l>i;--l){            if(l!=j)a[l][i]=a[l+1][i]+1;            }        i+=1;        j-=1;        dis = j-i;        if(dis==0)a[i][j]=a[i][j-1]+1;              }    for(int i=0;i<N;++i)        for(int j=0;j<N;++j)cout<<a[i][j]<<" ";    cout<<endl;    for(int p=0;p<N;++p)delete [] a[p];}int main(){    int N;    cin>>N;    clockMatrix(N);    return 0;}
0 0
原创粉丝点击