Quando a gente está fazendo uma tabela e colocando dados da esquerda para a direita, normalmente a última linha fica incompleta.
Essa tabela, por exemplo, tem só duas colunas preenchidas na última linha.
Pergunta! Dado o número de items, quantos items tem na última coluna?
Reposta:
número de items MOD número de colunas.
Nossa tabela acima: 8 MOD 3 = 2. Ou seja, duas colunas na última linha.
Legal né? É sim, mas o que acontece se o número de items bater certinho? Tipo, 9 items para 3 colunas?
9 MOD 3 = 0... Hmmm... ZERO não é o número de items da última coluna, o número de items da última coluna é 3.
Ok, então, aqui vai um
truque para voltar o número exato:
(((colunas - 1) + (items MOD colunas)) MOD colunas) + 1
EITA!!!
Exemplos pra tentar facilitar um pouco:
7 items, 3 colunas:
(((3 - 1) + (7 MOD 3)) MOD 3) + 1
((2 + 1) MOD 3) + 1
(3 MOD 3) + 1
0 + 1
1
9 items, 3 colunas:
(((3 - 1) + (9 MOD 3)) MOD 3) + 1
((2 + 0) MOD 3) + 1
(2 MOD 3) + 1
2 + 1
3
É isso aí. Pra quem não quer fazer um simples
if, ou é um maníaco matemático. Essa é uma solução. Alguém conhece outras?