#include<stdio.h>
#include<math.h>
int main()
{
int n,i,sum;
while(scanf("%d",&n)!=EOF)
{
i=(sqrt(1+8*n)-1)/2;
sum=(i+1)*i/2;
while(sum<n) sum+=++i;
if((sum-n)%2==0) printf("%d\n",i);
else printf("%d\n",i&1?i+2:i+1);
}
return 0;
}
或者:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int s,n,t;
while(cin>>s)
{
n=sqrt(s*2);
t=(n+1)*n/2;
if(t<s)
{
n++;
t+=n;
}
if((t-s)%2==0)
{
cout<<n<<endl;
}
else
{
if(n%2==0)
cout<<n+1<<endl;
else
cout<<n+2<<endl;
}
}
return 0;
}
评论