您的位置:首页 > 产品设计 > UI/UE

POJ 2081 Recaman's Sequence

2011-08-02 11:01 417 查看
 
 

题目链接:http://poj.org/problem?id=2081

 

分析:就是要求一系列数字,如果a[i-1]-i>0  则:ai=a[i-1]-i,否则的话  ai=a[i-1]+i,同时要满足这些数字在之前没有出现过。

 

源代码:

//POJ 2081  AC

#include <iostream>

using namespace std;

int a[500010];

bool flag[3500000]={false};//如果也开个500010  运行时错误

void init(){

int i,t;

a[0]=0;

for(i=1;i<=500000;i++){

t=a[i-1]-i;

if(t>0&&!flag[t]){

a[i]=t;

}

else{

a[i]=a[i-1]+i;

}

flag[a[i]]=true;

}

}

int main(){

int k;

init();

while(cin>>k){

if(k==-1) break;

cout<<a[k]<<endl;

}

return 0;

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: