Tengo un número de controles (gráficos en este caso) que se determinan en tiempo de ejecución. Me gustaría poner estos en una cuadrícula con el número adecuado de filas y columnas. Por ejemplo,Determine las filas/columnas necesarias dado un número
- 4 artículos = 2 x 2
- 8 artículos = 4 x 2
- 9 artículos = 3 x 3
- 20 artículos = 5 x 4
- 11 artículos = 4 x 3 (No me importa una celda vacía)
Lo siento, realmente no tengo ningún código para mostrar mis intentos. Empecé a jugar para determinar si la raíz cuadrada es un número entero, si el número es divisible por 2, etc. y me di cuenta de que no estoy seguro de cómo atacar este problema. Pero esto es lo que pienso:
- Si la raíz cuadrada es un número entero, utilice la raíz cuadrada del número de filas y columnas (no hay problema)
- Si no es así, asegúrese de que el número es incluso (agregue uno si tiene que - no hay problemas allí)
- Encuentra los dos enteros más altos que producen el número. p.ej. Si tengo 20 controles, la cuadrícula debe ser 5 x 4 y no 10 x 2 (no estoy seguro de la mejor manera para esto)
Agradecería que alguien me señale la dirección correcta - o Sugerir un algoritmo diferente si estoy fuera de la base.
¿Hay restricciones adicionales para ayudar a decidir un 'mejor' en forma? Por ejemplo, 2x17 = 34, pero podría obtener una cuadrícula más 'cuadrada' con un espacio perdido usando 5x7 = 35. Esto puede empeorar arbitrariamente a medida que comience a considerar el doble de números primos cada vez más grandes. –
Hmm, no había pensado en eso, gracias por señalarlo. Creo que preferiría 35 cuadrados con espacio faltante. –