![](https://i-blog.csdnimg.cn/blog_migrate/2c456b6f2288569c5fe007b2593420b9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/63062be616951d88dfbdc2fba5ab9cde.jpeg)
#include <iostream>
using namespace std;
int n, m;
int dfs(int u, int sum, int last)
{
if (u == n)
{
if (sum == m) return 1;
return 0;
}
int res = 0;
for (int i = last; i <= m; i ++ )
res += dfs(u + 1, sum + i, i);
return res;
}
int main()
{
while (cin >> m >> n)
cout << dfs(0, 0, 0) << endl; //当前枚举到的位数,苹果数量,上一个数是几(保证递增)
return 0;
}