1807: 【基础】螺旋方阵

本文介绍了一个使用Pascal语言实现的程序,该程序能够将一个n×n的二维数组按螺旋顺序填充数字,并计算两条对角线上的元素之差。通过循环和条件判断实现了数字的螺旋填充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

program ex1807;
var n,i,j,t,f,l,q,z:integer;s1,s2:longint;
a:array[1..20,1..20] of integer;
begin
readln(n);
t:=1; f:=1; l:=n;i:=1;q:=1;z:=n;
while t<=n*n do
begin
case f of
1:begin
for j:=q to z do begin a[i,j]:=t;inc(t);end;
f:=2; q:=i+1;dec(l); z:=l+q-1;
end;
2:begin
for i:=q to z do begin a[i,j]:=t;inc(t);end;
f:=3;q:=j-1; z:=q-l+1;
end;
3:begin
for j:=q downto z do begin a[i,j]:=t;inc(t); end;
f:=4;q:=i-1;dec(l);z:=q-l+1;
end;
4:begin
for i:=q downto z do begin a[i,j]:=t;inc(t); end;
f:=1;q:=j+1;z:=q+l-1;
end;
end;
end;
s1:=0;s2:=0;
for i:=1 to n do s1:=s1+a[i,i];
for i:=n downto 1 do s2:=s2+a[n-i+1,i];
writeln(s1-s2);
end.

转载于:https://www.cnblogs.com/Steven-Skywalker/p/7088372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值