RosettaCodeData/Task/Spiral-matrix/D/spiral-matrix-1.d
Ingy döt Net 776bba907c Sync
2013-10-27 22:24:23 +00:00

20 lines
540 B
D

void main() {
import std.stdio;
enum n = 5;
int[n][n] M;
int pos, side = n;
foreach (immutable i; 0 .. n / 2 + n % 2) {
foreach (immutable j; 0 .. side)
M[i][i + j] = pos++;
foreach (immutable j; 1 .. side)
M[i + j][n - 1 - i] = pos++;
foreach_reverse (immutable j; 0 .. side - 1)
M[n - 1 - i][i + j] = pos++;
foreach_reverse (immutable j; 1 .. side - 1)
M[i + j][i] = pos++;
side -= 2;
}
writefln("%(%(%2d %)\n%)", M);
}