【题意简述】:这个题目描述很短,也很简单。不再赘述。
【分析】:只需再加一个判别这个数是否出现的数组即可,注意这个数组的范围!
// 3388K 0Ms
#include<iostream>
using namespace std;
#define Max 500001
int a[Max];
bool b[10000000] = {false}; // b的数据范围是可以试出来的…
void init()
{
a[0] = 0;
b[0] = true;
for(int m = 1;m<Max;m++)
{
a[m] = a[m-1]-m;
if(a[m]<0||b[a[m]])
{
a[m] = a[m-1] + m;
}
else{
a[m] = a[m-1] - m;
}
b[a[m]] = true;
}
}
int main()
{
init();
int k;
while(cin>>k)
{
if(k == -1)
break;
cout<<a[k]<<endl;
}
return 0;
}