递归,记住某些状态,
查看原帖
递归,记住某些状态,
524191
Man_CCNU楼主2021/11/2 09:19
#include<iostream>

using namespace std;

const int N = 1000 + 10;
int f[N];

long long method(int n)
{
    if (n == 0 || n == 1) return 1;
    if (f[n] != 0) { return f[n]; }

    long long res = 1;
    int mid = n >> 1;
    for (int i = 1; i <= mid; i++)
    {
        res+= method(i);
    }
    f[n] = res;

    return res;
}

int main()
{
    int n;
    cin >> n;
    f[0] = f[1] = 1;
    long long res=method(n);
    cout << res << endl;

    return 0;
}
2021/11/2 09:19
加载中...