# Row and column algorithm

Looking for help in revising my algorithm. I need to find one that will give me the row and column of a cell on a grid.

The grid is $t \times t$. For example, this is a grid for $t=5$. Now given $n$, find the row and column. $$\begin{array}{|c|c|c|c|c|} 1& 2& 3& 4& 5\\ 6& 7& 8& 9& 10\\ 11& 12& 13& 14& 15\\ 16& 17& 18& 19& 20\\ 21& 22& 23& 24& 25 \end{array}$$

My attempt:

row: $n / t + 1$ column: $n \bmod t$

Second attempt:

$\operatorname{row}(x, t) = ((x-x \bmod t)/t)+1$

$\operatorname{column}(x,t) = (x-1) \bmod t+1$

Doesn't work for $n = t^2$

The row is :$$r = \lfloor \frac{n-1}{t} \rfloor + 1$$
The column is:$$c = n - t(r-1)$$
• If zero indexing were to be used ($0,1,2,\ldots$ instead of $1,2,\ldots$) then the answer would look cleaner. $c$ could also be (n-1)%t+1. Feb 26 '13 at 16:23
• This is a common operation using matrices called the transpose, it is simply the swap of the indices $r\leftrightarrow c$. If by reflection over diagonals you mean other than the main (top left down to the bottom right), then maybe do some sort of shifting... though that sounds inexact, since any sort of "reflecting" would give indices out of bounds... Feb 26 '13 at 23:36
• yes, it is. The row index is $r$, the column index is $c$, and to transpose (reflection about the main diagonal) then swap those. Feb 26 '13 at 23:49