3 5 8 13
4 9 12 14
10 11 15 16
4种方向的走法,向右,斜向下,向下,斜向上。
K为走的方向, 1、 2、 3、 4
最后输出的时候变化x,y的位置会改变蛇行输出的方向你也可以试下。
知道了上面的规则你就可以记住了。
program sx;
var
sz:array[1..20,1..20] of integer;
x,y,i,n,k:integer;
begin
readln(n);
for x:=1 to n do
for y:=1 to n do
sz[x,y]:=0;
x:=1;
y:=1;
sz[x,y]:=1;
k:=1;
for i:=2 to n*n do
begin
if k=1 then
begin
y:=y+1;
if x=n then k:=4 else k:=2;
end
else if k=2 then
begin
x:=x+1;
y:=y-1;
if x=n then
k:=1
else if y=1 then
k:=3;
end
else if k=3 then
begin
x:=x+1;
if y=n then k:=2 else k:=4;
end
else if k=4 then
begin
x:=x-1;
y:=y+1;
if y=n then
k:=3
else if x=1 then
k:=1;
end;
sz[x,y]:=i;
end;
for x:=1 to n do
begin
for y:=1 to n do
write(sz[x,y]:4);
writeln;
end;
readln;
回形矩阵(蛇形矩阵)解题思路 来自淘豆网m.daumloan.com转载请标明出处.