天天看點

由内到外的螺旋矩陣

由内到外的螺旋矩陣

思路:

由内到外的螺旋矩陣

紅線方程y=x,綠線方程y=-x+4,4為矩形邊長。

兩條直線将區域分為四個部分,劃分好每個區域的邊界值,每個區域的坐标變化規律有四種,x++,y++,x--,y--,接下來仔細分析就能得到算法:

void

SpiralArray(

int

size,

int

** ar)

{   

int

a=size/2*2+1;

//保證邊長為奇數

int

y=a/2,x=a/2;

//從中心點開始

for

(

int

i=1;i<=size*size;i++)

//(int i=size*size;i>=1;i--)

{

if

(x<=a-y-1&&x>=y)

{

ar[y][x]=i;

x++;

}

else

if

(x>a-y-1&&x>y)

{

ar[y][x]=i;

y++;

}      

else

if

(x>a-y-1&&x<=y)

{

ar[y][x]=i;

x--;

}

else

if

(x<=a-y-1&&x<y)

{

ar[y][x]=i;

y--;

}

}

}

繼續閱讀