zoukankan      html  css  js  c++  java
  • POJ-2081 Recaman's Sequence

    Recaman’s Sequence
    Time Limit: 3000MS Memory Limit: 60000K
    Total Submissions: 22392 Accepted: 9614
    Description

    The Recaman’s sequence is defined by a0 = 0 ; for m > 0, am = am−1 − m if the rsulting am is positive and not already in the sequence, otherwise am = am−1 + m.
    The first few numbers in the Recaman’s Sequence is 0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9 …
    Given k, your task is to calculate ak.
    Input

    The input consists of several test cases. Each line of the input contains an integer k where 0 <= k <= 500000.
    The last line contains an integer −1, which should not be processed.
    Output

    For each k given in the input, print one line containing ak to the output.
    Sample Input

    7
    10000
    -1
    Sample Output

    20
    18658

    #include <iostream>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stdlib.h>
    
    using namespace std;
    #define MAX 500000
    long long int a[MAX+5];
    bool tag[10000000];
    void fun()
    {
        a[0]=0;
        tag[0]=1;
        for(int i=1;i<=MAX;i++)
        {
            a[i]=a[i-1]-i;
            if(a[i]<0||tag[a[i]]==1)
                a[i]=a[i-1]+i;
            tag[a[i]]=1;
        }
    }
    int main()
    {
        int n;
        memset(tag,0,sizeof(tag));
        fun();
        while(scanf("%d",&n)!=EOF)
        {
            if(n==-1)
                break;
            printf("%d
    ",a[n]);
    
        }
    }
  • 相关阅读:
    发布全文检索类库外包
    给即将面试的人
    实验四 Web服务器2
    电子公文传输系统验收2功能测试
    整数范围与类型转换
    实验三电子公文传输系统1个人贡献
    socket测试
    电子公文传输系统验收4开发基础
    Web服务器1socket编程
    算法测试(课上测试)
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228817.html
Copyright © 2011-2022 走看看