提交时间:2026-02-18 21:05:23
运行 ID: 84680
#include <iostream> #include <vector> using namespace std; int partition(int n, int k, int min_val) { if (n == 0 && k == 0) return 1; if (n < 0 || k == 0) return 0; if (k > n) return 0; int result = 0; for (int i = min_val; i <= n / k; ++i) { result += partition(n - i, k - 1, i); } return result; } int main() { int n, k; while (cin >> n >> k) { cout << partition(n, k, 1) << endl; } return 0; }