您的位置:首页 > 其它

Pascal 语言中二维数组:矩阵问题

2015-02-26 19:11 155 查看

【题目】方阵填数:在一个 N*N的方阵中,填入 1,2..... N*N个数,并要求构成如下格式:

图例:10 11 12  1            9  16 13  2            8  15 14  3            7   6   5   4 【上手】观察图例,不难看出这是一个螺旋矩阵,下面是色彩渐变版大图,纯手工制作(有木有2048的赶脚): 【核心代码】
//变量赋初值
x:=0;//横坐标
y:=0;//纵坐标
i:=0;//要填入的数字
k:=n;//每一轮需要填的方格数
j:=1;//填数的方向,1时为从上到下↓或从左到右→,-1时相反
//开始填数
while i<n*n do
begin
for i:=i+1 to i+k do//纵向↑ ↓填数
x:x+j;
a[x,y]:=i;
end;//结束 for 循环
dec(k);//即 k:=k-1,每完成一个纵行填数后执行,下一行需要填的方格数-1
if j=1 then j:=-1else j:=1;//控制方向,这一次是从上到下或从左到右下一次就是从下到上或从右到左
for i:=i+1 to i+k do//横向← →填数
begin
y:=y+j;
a[x,y]:=i;
end;
end;//结束 while 循环
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: