///打表,注意f数组的大小 #include<stdio.h> #include<string.h> bool f[3020000]; int ans[500005]; long k; int main() { memset(f,0,sizeof(f)); ans[0]=0; long i; for(i=1;i<=500000;i++) { if(ans[i-1]>i&&f[ans[i-1]-i]==false) { ans[i]=ans[i-1]-i; f[ans[i-1]-i]=true; } else { ans[i]=ans[i-1]+i; f[ans[i-1]+i]=true; } } while(scanf("%d",&k)==1&&k!=-1) { printf("%d/n",ans[k]); } return 0; }