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]);
    
        }
    }
  • 相关阅读:
    莫队专题
    AJAX XML 实例
    AJAX 简介
    AJAX 服务器响应
    AJAX 创建XMLHttpRequest 对象
    AJAX 教程
    AJAX 向服务器发送请求
    AJAX onreadystatechange 事件
    AJAX ASP/PHP 请求实例
    让卖场的死角“起死回生”
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228817.html
Copyright © 2011-2022 走看看