Minimum number of cells after, before, above and below NxN squares: Difference between revisions

(Added XPL0 example.)
Line 1,331:
 
0</pre>
 
 
or in terms of Data.Matrix:
<lang haskell>import Data.Matrix ( matrix, Matrix )
 
distanceToEdge :: Int -> Matrix Int
distanceToEdge n =
matrix
n
n
(\(a, b) -> minimum [pred a, pred b, n - a, n - b])
 
main :: IO ()
main =
mapM_ print $ distanceToEdge <$> [10, 9, 2, 1]</lang>
{{Out}}
<pre>┌ ┐
│ 0 0 0 0 0 0 0 0 0 0 │
│ 0 1 1 1 1 1 1 1 1 0 │
│ 0 1 2 2 2 2 2 2 1 0 │
│ 0 1 2 3 3 3 3 2 1 0 │
│ 0 1 2 3 4 4 3 2 1 0 │
│ 0 1 2 3 4 4 3 2 1 0 │
│ 0 1 2 3 3 3 3 2 1 0 │
│ 0 1 2 2 2 2 2 2 1 0 │
│ 0 1 1 1 1 1 1 1 1 0 │
│ 0 0 0 0 0 0 0 0 0 0 │
└ ┘
┌ ┐
│ 0 0 0 0 0 0 0 0 0 │
│ 0 1 1 1 1 1 1 1 0 │
│ 0 1 2 2 2 2 2 1 0 │
│ 0 1 2 3 3 3 2 1 0 │
│ 0 1 2 3 4 3 2 1 0 │
│ 0 1 2 3 3 3 2 1 0 │
│ 0 1 2 2 2 2 2 1 0 │
│ 0 1 1 1 1 1 1 1 0 │
│ 0 0 0 0 0 0 0 0 0 │
└ ┘
┌ ┐
│ 0 0 │
│ 0 0 │
└ ┘
┌ ┐
│ 0 │
└ ┘</pre>
 
 
=={{header|J}}==
9,655

edits