Spiral matrix: Difference between revisions

Content added Content deleted
No edit summary
Line 2,750: Line 2,750:


for i,v in ipairs(spiralt(8)) do for j, u in ipairs(v) do io.write(u .. " ") end print() end</lang>
for i,v in ipairs(spiralt(8)) do for j, u in ipairs(v) do io.write(u .. " ") end print() end</lang>

=={{header|Maple}}==

<lang Maple>
with(ArrayTools):

spiralArray := proc(size::integer)
local M, sideLength, count, i, j:
M := Matrix(size):
count := 0:
sideLength := size:
for i from 1 to ceil(sideLength / 2) do
for j from 1 to sideLength do
M[i,i + j - 1] := count++:
end:
for j from 1 to sideLength - 1 do
M[i + j, sideLength + i - 1] := count++:
end:
for j from 1 to sideLength - 1 do
M[i + sideLength - 1, sideLength - j + i - 1] := count++:
end:
for j from 1 to sideLength - 2 do
M[sideLength + i - j - 1, i] := count++
end:
sideLength -= 2:
end:
return M;
end proc:

spiralArray(5);

</lang>
{{out}}<pre>
[ 0 1 2 3 4]
[ ]
[15 16 17 18 5]
[ ]
[14 23 24 19 6]
[ ]
[13 22 21 20 7]
[ ]
[12 11 10 9 8]

</pre>


=={{header|Mathematica}} / {{header|Wolfram Language}}==
=={{header|Mathematica}} / {{header|Wolfram Language}}==