FOJ 1036 1036 四塔问题

一,问题描述

FOJ 1036 1036 四塔问题_第1张图片

二,问题分析

参考如下:https://blog.csdn.net/wsqgwp/article/details/9164399

三,问题解答

#include
using namespace std;
int f[50001];           //打表
void init()
{
    f[0] = 0;
    int p = 1;
    int q = p;
    int k = 1;
    for (int i = 1; i <= 50000; i++) {
        f[i] = (f[i - 1] + k) % 10000;
        q--;
        if (q == 0) {
            p++;
            q = p;
            k *= 2;
            k %= 10000;
        }
    }
}
int main()
{
    init();

    int n;
    while (cin >> n) {
        cout << f[n] << endl;
    }
    return 0;
}

 

你可能感兴趣的:(FOJ)