比较简单的一道递推题,按题目要求计算即可
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn=500001;
int f[maxn];
bool vis[7000000];
void Init()
{
f[0]=0;
for(int i=1;i<maxn;i++)
{
f[i]=f[i-1]-i;
if(!(f[i]>0&&!vis[f[i]]))
f[i]=f[i-1]+i;
vis[f[i]]=1;
}
}
int main()
{
Init();
int n;
while(scanf("%d",&n)&&n!=-1)
printf("%d\n",f[n]);
return 0;
}