【题意简述】:这个题目描述很短,也很简单。不再赘述。
【分析】:只需再加一个判别这个数是否出现的数组即可,注意这个数组的范围!
// 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; }
POJ 2081 Recaman's Sequence(水题)
时间: 2024-10-13 20:00:58