我有许多在运行时确定的控件(在本例中为图表)。我想将它们放在具有适当数量的行和列的网格中。例如,
抱歉,我没有任何代码可以显示我的尝试。我开始确定平方根是否为整数,该数字是否可以被2整除等,并开始意识到自己不确定如何解决这个问题。但这就是我的想法:
如果有人可以向我指出正确的方向,或者如果我的做法不正确,建议使用其他算法,我将不胜感激。
最佳答案
想法:如果平方根不是整数,则将其取底,然后将其除以该整数,将其取顶。
int columns = (int)sqrt(number);
int lines = (int)ceil(number / (float)columns);
示例:21 =>列= 4,行= 6。
更新:奖励,当sqrt(number)为整数时,它也适用。没有舍入发生任何地方,并且值是正确的。