ACM模版

描述

题解

没有什么是打表不能正面刚的,写一个程序预处理一下,暴力解出这十几个数,然后打表,直接过!

其实这个题应该是可以通过通式来求的吧,具体有兴趣可以尝试看看《具体数学》一书的第一章,将约瑟夫环的一般性扩展都讲的特别细,好书!

代码

#include <iostream>

using namespace std;

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

int main(int argc, const char * argv[])
{
    while (cin >> G, G)
    {
        cout << num[G] << '\n';
    }

    return 0;
}