poj 2081 简单递推

#include<stdio.h>
#include<string.h>
#define N  510000
int dp[N];
int f[10000000];
int main() {
    int k,n,m,i,j;
    dp[0]=0;
    memset(f,0,sizeof(f));
    for(i=1;i<=500000;i++) {
        if(dp[i-1]-i>0&&f[dp[i-1]-i]==0) {
            dp[i]=dp[i-1]-i;
             f[dp[i]]=1;
        }
        else {
            dp[i]=dp[i-1]+i;
             f[dp[i]]=1;
        }
    }
    while(scanf("%d",&n),n!=-1) {
        printf("%d\n",dp[n]);
    }
return 0;}

posted @ 2015-02-06 19:59  HYDhyd  阅读(191)  评论(0编辑  收藏  举报