2014年12月29日 星期一

2014/12/29 POJ 1012 Joseph

/*
    先用註解掉的那段碼
    在幾秒鐘內算出答案
    接著 把答案存起來
    直接輸出
*/
// http://poj.org/problem?id=1012
#include <iostream>
#include <cstdio>

using namespace std;

int Ans[] = { 0, 2, 7, 5, 30, 169, 441, 1872, 7632, 1740, 93313, 459901, 1358657, 2504881};

int main()
{

    int x;

    /*
    while(1)
    {
        scanf("%d", &x);

        for(int L = x+1; ; L++)
        {
            int now = 0;
            bool OK = true;

            for(int xi = 0; xi < x; xi++)
            {
                now = (L+now-1)%(x*2-xi);
                if( now < x ) OK = false;
            }

            if( OK ){ printf("%d\n", L); break; }
        }

    }
    */

    while(1)
    {
        scanf("%d", &x);
        if( !x ) break;

        printf("%d\n", Ans[x]);
    }
}

沒有留言:

張貼留言