本题题解

#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