Линейный индекс верхней треугольной матрицы

Если у меня есть верхняя треугольная часть матрицы, смещенная над диагональю, сохраненная в виде линейного массива, как(i,j) индексы матричного элемента извлекаются из линейного индекса массива?

Например, линейный массив[a0, a1, a2, a3, a4, a5, a6, a7, a8, a9 это хранилище для матрицы

0  a0  a1  a2  a3
0   0  a4  a5  a6
0   0   0  a7  a8
0   0   0   0  a9
0   0   0   0   0

И мы хотим знать индекс (i, j) в массиве, соответствующий смещению в линейной матрице, без рекурсии.

Подходящий результат,k2ij(int k, int n) -> (int, int) удовлетворит, например,

k2ij(k=0, n=5) = (0, 1)
k2ij(k=1, n=5) = (0, 2)
k2ij(k=2, n=5) = (0, 3)
k2ij(k=3, n=5) = (0, 4)
k2ij(k=4, n=5) = (1, 2)
k2ij(k=5, n=5) = (1, 3)
 [etc]

Ответы на вопрос(4)

Ваш ответ на вопрос