local w,h = 7,9 --定义矩阵的宽高
local x,y = 1,1 --起始角标
local d_x ,d_y = 0,1 --下一个角标的 增量
local cnt = 1 --起始值
local arr = {} --矩阵
--给矩阵赋值 初始值全部为0
for i=1,w do
for j=1,h do
if arr[i] == nil then
arr[i] = {}
end
arr[i][j] = 0
end
end
--开始回旋赋值
while(cnt <= w*h) do
arr[x][y] = cnt
cnt = cnt + 1
x = x + d_x
y = y + d_y
if d_y == 1 and (y>=h or arr[x][y+1] ~= 0) then--向下
d_x = 1
d_y = 0
elseif d_x == 1 and (x>=w or arr[x+1][y] ~= 0) then--向左
d_x= 0;
d_y = -1;
elseif d_y == -1 and (y<=0 or arr[x][y-1] ~= 0) then--向上
d_x = -1;
d_y = 0;
elseif d_x == -1 and (x<=0 or arr[x-1][y] ~= 0) then--向右
d_x= 0;
d_y = 1;
end
end
--输出回旋矩阵
for i=1,w do
local str = ""
for j=1,h do
str = str .."、"..arr[i][j]
end
print(str)
end
lua输出回旋矩阵
最新推荐文章于 2024-06-18 09:49:33 发布