Estoy creando una función que permitirá al usuario elegir una celda en una tabla creada dinámicamente, pasando un número entero.
Es decir, si tengo una cuadrícula de 3x3, y el usuario pasa el número 4, el programa debe saber que quiere la primera celda en la segunda fila. (las celdas se contarán por filas) Como mencioné, la tabla se crea dinámicamente y puede ser de cualquier tamaño.
Puedo hacer esto con un montón de declaraciones if, pero me preguntaba si tal vez haya un algoritmo para resolver esto fácilmente.

(P.D .: estoy usando un lenguaje de programación muy básico, así que, por favor, no hay funciones de matemáticas pitónicas sofisticadas ... :))

0
DaveyD 3 abr. 2017 a las 17:58

2 respuestas

La mejor respuesta

Todo lo que necesitas hacer es dividir por columnas y encontrar el resto. Algo como esto:

input = 4
row = floor(input / columns)
column = input % columns
1
BenShelton 3 abr. 2017 a las 15:03

Suponiendo que la salida debe ser 1 índice basado

input = n, k  // n * n grid, k number

row = floor( (k - 1) / n ) + 1;
col = k % n;
if(col == 0) {
    col += n;
}

// print row, col
1
Kaidul 3 abr. 2017 a las 15:20