Vanya got n cubes. He decided to build a pyramid from them. Vanya wants to build the pyramid as follows: the top level of the pyramid must consist of 1 cube, the second level must consist of 1 + 2 = 3 cubes, the third level must have 1 + 2 + 3 = 6 cubes, and so on. Thus, the i-th level of the pyramid must have 1 + 2 + … + (i - 1) + i cubes.
Vanya wants to know what is the maximum height of the pyramid that he can make using the given cubes.
Input
The first line contains integer n (1 ≤ n ≤ 104) — the number of cubes given to Vanya.
Output
Print the maximum possible height of the pyramid in the single line
问题分析:通过计算可知第i层有i*(i+1)/2个立方体,通过累加计算从第一层开始到第i层共需要多少(s)立方体,当s第一次大于给定的立方数,输出i-1即为结果
AC通过的代码如下:
#include<iostream>
using namespace std;
int main()
{
long long n,i=0, s = 0;
cin >> n;
while (s <=n)
{
i++;
s += i * (i + 1) / 2;
}cout << i -1<< endl;
return 0;
}