примерно так
Код:
N - размер
A = array [0..N-1, 0..N-1]
i = 1 // просто счетчик
for(level = 0; level <= N/2; level++)
{
for(cols1 = level; cols1 < N - level; cols++)
A[level,cols1] = i++;
for(rows1 = level + 1; rows1 < N - level; rows++)
A[rows1,N-level-1] = i++
for(cols2 = N-level-2; cols2 >= level; cols2--)
A[N-level-1,cols2] = i++
for(rows2 = N-level-2; rows2 > level; rows2--)
A[rows2,level] = i++
}