POJ 2081 Recaman's Sequence

http://poj.org/problem?id=2081

打表.

 1 #include <stdio.h>
 2 int numbers[500001];
 3 bool flags[500001*10]={false};
 4 int main()
 5 {
 6     int i;
 7     numbers[0]=0;
 8     flags[0]=true;
 9     numbers[1]=1;
10     flags[1]=true;
11     for(i=2;i<=500000;i++) {
12         if(numbers[i-1]-i>0&&(flags[numbers[i-1]-i]==false)) {
13             numbers[i]=numbers[i-1]-i;
14             flags[numbers[i]]=true;
15         } else {
16             numbers[i]=numbers[i-1]+i;
17             flags[numbers[i]]=true;
18         }
19     }
20     int k;
21     while(scanf("%d",&k)!=EOF) {
22         if(k==-1)    return 0;
23         printf("%d\n",numbers[k]);
24     }
25     return 0;
26 }
27     

 

posted @ 2013-02-06 09:48  linyvxiang  阅读(160)  评论(0)    收藏  举报