链接
题意:
说透彻点就是 让你计算\((n+1)\)最大是(1+2+3+...x)这个x
分析:
我是直接O(1)的,我们直接用等差数列前n项和
\[x*(x+1)/2<=(n+1) \]
然后直接转化,x(x+1)<=2(n+1),然后我们 xx<=2(n+1),求出x,然后往下找符合条件的x即可
ll n;
void solve(){
scanf("%lld",&n);
if(n==1||n==2){
cout<<1<<endl;
return ;
}
ll sum=sqrt((n+1)*2);
while(sum*(sum+1)>2*(n+1)) sum--;
cout<<n-sum+1<<endl;
}