var n:integer;
a:array[1..100,1..100] of integer;
x,y,ax,ay,i,t:integer;
begin
fillchar(a,sizeof(a),0);
ax:=0;ay:=1;
x:=1;y:=1;
readln(n);
for i:=1 to n*n do begin
a[x,y]:=i;
if not(((x+ax) in [1..n])and((y+ay) in [1..n])and(a[x+ax,y+ay]=0)) then begin
t:=ax;ax:=ay;ay:=t;
ay:=-ay;
end;
x:=x+ax;
y:=y+ay;
end;
for x:=1 to n do begin
for y:=1 to n do
write(a[x,y],' ');
writeln;
end;
end.
给别人写的
输出
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
自己弄一下