#include <iostream>
using namespace std;
int f(int n, int k) {
    if (n == 1 || k == 1) return 1;
    else if (n < k) return f(n, n);
    else if (n == k) return 1 + f(n, k - 1);
    else if (n > k)  return f(n - k, k) + f(n, k - 1);//包含k  不包含k
    else return 0;
}
int main() {
    int n, k; cin >> n >> k;
    cout << f(n, k) << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

贴个博客:https://blog.csdn.net/qq_41040550/article/details/106314376

贴个截图: