2016騰訊模擬筆試題
阿新 • • 發佈:2019-01-01
題目:
根據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;
}