排列硬币
总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。
给定一个数字 n,找出可形成完整阶梯行的总行数。
n 是一个非负整数,并且在32位有符号整型的范围内。
示例 1:
n = 5
硬币可排列成以下几行:
¤
¤ ¤
¤ ¤
因为第三行不完整,所以返回2.
思路+代码+注释:
public int arrangeCoins(int n) {
/*
思路:定义curRow代表当前行,n代表剩余硬币数量,如果n大于等于当前行那么说明还可以够一行那么res++,n减去curRow,curRow++,直到n小于curRow为止
*/
int res=0;
int curRow=1;
while (n>=curRow)
{
n-=curRow;
curRow++;
res++;
}
return res;
}