参考了大佬们的解题。利用互斥事件和递归来解题。
#include <iostream> #include <vector> #include <algorithm> using namespace std; int fun(int m, int n) { if (m < 0 || n < 0) return 0; else if (m == 1 || n == 1) return 1; else return fun(m, n - 1) + fun(m - n, n); } int main(){ int m = 0, n = 0; cin >> m >> n; int res = fun(m, n); cout << res << endl; return 0; }