1. 程式人生 > >2016騰訊模擬筆試題

2016騰訊模擬筆試題

題目:
根據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; }