P1025 [NOIP 2001 提高组] 数的划分 - 洛谷 (luogu.com.cn)
#include<iostream>
using namespace std;
int n, k;
int res = 0;
void dfs(int num,int step,int sum) {//判断if (sum == n) {if (step == k) {res++;return;}}if (sum > n || step == k)return;//搜索for (int i = num; i * (k - step) + sum <= n; i++) {dfs(i, step + 1, sum + i);}
}
int main() {cin >> n >> k;dfs(1, 0, 0);cout << res;return 0;
}