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

评论