ZOJ 2421

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1421


简单题,将出现的数字标记下,就可以了。

数组开大会爆掉

下面是AC代码:

#include<iostream>
using namespace std;
int f[500005];
bool mark[10000000];
int main(){
	f[0]=0;
    int i,n;
	mark[0]=true;
	for(i=1;i<=500000;i++){
		f[i]=f[i-1]-i;

		if(f[i]<=0||mark[f[i]]==true)
			f[i]=f[i-1]+i;

		mark[f[i]]=true;

	}

	while(cin>>n&&n>0){
		cout<<f[n]<<endl;
	}

	return 0;


}


你可能感兴趣的:(ZOJ 2421)