题目描述
小爱同学想要用积木搭起一个金字塔。为了结构稳定,金字塔的每一层要比上一层多一块积木。即搭建规则如下:
金字塔的第
1
1
1 层需要放
1
1
1 块积木
金字塔的第
2
2
2 层需要放
2
2
2 块积木
金字塔的第
3
3
3 层需要放
3
3
3 块积木
…
金字塔的第
i
i
i 层需要放
i
i
i 块积木
现在小爱拿到了
n
n
n 块积木,请问他最高可以搭出多少层的金字塔?
输入格式
输入一个正整数
n
n
n,表示小爱手中的积木数量
输出格式
输出一个正整数,表示小爱最高能搭的金字塔层数
数据范围
对于 50% 的数据,
1
≤
n
≤
1000
1≤n≤1000
1≤n≤1000
对于 100% 的数据,
1
≤
n
≤
1000000000
1≤n≤1000000000
1≤n≤1000000000
样例数据
输入:
12
输出:
4
说明:
4层金字塔需要1+2+3+4=10块积木,而5层金字塔需要1+2+3+4+5=15块积木,所以小爱在有12块积木的情况下,最多搭4层金字塔
分析:
思路一
可以开一个ans加数就行了,一但大于跳出就行了,输出就是i-1(注:循环是while)
代码:
100分
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n,i=0,ans=0;
cin>>n;
while(ans<n){
i++;
ans+=i;
}
cout<< i-1 << endl;
return 0;
}