思路: 从1开始枚举,如果sum到0了,同时枚举的层数如果到k了,就把res++,然后输出res 刚刚接触dfs,感觉还是有点难的

using namespace std;
int n, k;
int res;

void dfs(int sum, int u,int cnt)
{
	if (cnt == k)
	{
		if (!sum) res++;
		return;
	}

	for (int i = u; i <= sum; i++)
	{
		dfs(sum - i, i,cnt+1);
	}
}


int main()
{
	cin >> n >> k;
	dfs(n,1,0);
	cout << res << endl;
	return 0;
}