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}}== |