问题来源:https://leetcode.com/problems/arranging-coins/
问题描述:You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins. Given n, find the total number of full staircase rows that can be formed. n is a non-negative integer and fits within the range of a 32-bit signed integer. 注意题目中给出的条件,n的范围。
Example 1:
n = 5 The coins can form the following rows: ¤ ¤ ¤ ¤ ¤ Because the 3rd row is incomplete, we return 2.
Example 2:
n = 8 The coins can form the following rows: ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ Because the 4th row is incomplete, we return 3.
我的代码(9ms):直接将n转换为double类型,利用函数公式求解 开方函数直接利用系统自带函数。
int arrangeCoins(int n){
return (sqrt(8 * (double)n + 1) - 1) / 2;
}
这种方法还是比较简单粗暴的,毕竟开方函数可以自己写(二分或者牛顿迭代法等等),之后再详细研究一下~