用C ++安排硬币

因此,如果输入是5,则输出将是2,因为使用5个硬币,我们可以形成两行完整的starecase行,最后一行需要三行,但我们必须保留2-

*
**
**

这可以通过使用以下公式直接完成-

$$\ frac {\ sqrt {(8n + 1)}-1} {2} $$

例 

让我们看下面的实现以更好地理解-

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int arrangeCoins(int n) {
      return (sqrt(8*(long long)n+1)-1)/2;
   }
};
main(){
   Solution ob;
   cout << (ob.arrangeCoins(13));
}

输入项

13

输出结果

4