题目来源于力扣(LeetCode)
一、题目
题目相关标签:数学、二分查找
二、解题思路
-
据题意:第 k 行就必须正好有 k 枚硬币
-
定义变量 row,使 n 对 row 循环相减,row 的值依次为 1,2,3,4...
-
直到 n 小于 1 时(即 n 已经不能够加上该行组成完整的阶梯形状),则 n 可以排列 row - 1 行
三、代码实现
public static int arrangeCoins(int n) {
int row = 1;
while (n >= 1) {
row += 1;
// 每次遍历减行数
n -= row;
}
return row - 1;
}
四、执行用时
五、部分测试用例
public static void main(String[] args) {
int num = 5; // output:2
// int num = 8; // output:3
int result = arrangeCoins(num);
System.out.println(result);
}