#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; }
评论