本题题解
#include<bits/stdc++.h>
using namespace std;
//1000,000,000+5就不超时
//1500,000,000+5就超时了,只AC0.9,只能让我在这个基础上弄个个数学吧不等式求解
const int maxn=1500000000+5;
void solve(long long n)
{
long long left;
for(long long i=1;i<maxn;++i)
{
long long temp=i*(i+1)/2;
if(temp>=n)
{
left=i;
break;
}
}
printf("%lld\n",left);
}
int main()
{
long long n;
while(~scanf("%lld",&n))
{
long long out=ceil( (sqrt(1+8*n)-1)/2 );
printf("%lld\n",out);
}
return 0;
} 公式由来,找到Sout>=n的位置
n*(n+1)/2>=n

京公网安备 11010502036488号