【简要题意】:这个主题是很短的叙述性说明。挺easy。
不重复。
【分析】:只需要加一个判断这个数是否可以是一个数组,这个数组的范围。
// 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; }
版权声明:本文博主原创文章。博客,未经同意不得转载。