題解:
方法1:枚舉法(不解釋)
方法2:等差數列法【待理解】
方法3:二分法【待理解】
代碼:
class Solution {
public:
int arrangeCoins(int n) {
/* 方法1:枚舉 */
if(n == 0)
{
return 0;
}
int res = 1;
long long tmp = 0;
for(int i = 2; ; i++)
{
tmp += i;
if(tmp >= n)
{
return res;
}
res++;
}
/* 方法2:等差數列公式法【待理解】
return (int) (-1 + sqrt(1 + 8 * (long) n)) / 2;
*/
/* 方法3:二分法【待理解】*/
}
};