我想布置X按钮。
一开始,Y项可以连续排列。 布置第一行后,下一行中只能显示Y - 1项,依此类推。
所以说我有13个按钮,第一行最多可以有6个按钮,我需要3行。第一个将有6个按钮,第二个5个按钮和3个2按钮。
由于
可以做什么算法:
int getRowCount(int startCols,int numItems);
我知道如果列数是常数的话怎么用MOD做,但如果每列的最大列数减少,你会怎么做呢?
答案 0 :(得分:2)
在这种情况下,我尝试将英语翻译成代码。
int getRowCount(int startCols, int numItems) {
int currentCols = startCols;
int numRows = 0;
while (numItems > 0) { // as long as items remain
numRows += 1; // add another row
numItems -= currentCols; // reduce the remaining items by the current number of columns
currentCols--; // reduce the number of columns by one
}
}
最好通过一些边缘情况来完成场景。问自己这样的问题:
如果numItems为0,我会得到什么答案? 如果startCols为0,我会得到什么答案? 如果numItems == startCols,我会得到什么答案?