题解 | #丢棋子问题#
丢棋子问题
http://www.nowcoder.com/practice/d1418aaa147a4cb394c3c3efc4302266
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 返回最差情况下扔棋子的最小次数
* @param n int整型 楼层数
* @param k int整型 棋子数
* @return int整型
*/
int solve(int n, int k) {
int t = 1;
while (floors(k, t) < n + 1) t++;
return t;
}
int floors(int k, int t)
{
if (t == 1 || k == 1) return t + 1;
return floors(k - 1, t - 1) + floors(k, t - 1);
}
};