把 M M M 个同样的苹果放在 N N N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
盘子相对顺序不同,例如 5 , 1 , 1 5,1,1 5,1,1 和 1 , 5 , 1 1,5,1 1,5,1 算作同一种分法。
输入格式
输入包含多组测试数据。
每组数据占一行,包含两个整数 M M M 和 N N N。
输出格式
每组数据,输出一行一个结果表示分法数量。
数据范围
1 ≤ M , N ≤ 10 1≤M,N≤10 1≤M,N≤10
输入样例:
7 3
输出样例:
8
#include<iostream>
using namespace std;
int m, n;
int dfs(int u, int sum, int last){
if(u == n)
return sum == 0;
int res = 0;
for(int i = last; i <= sum; i++)
res += dfs(u + 1, sum - i, i);
return res;
}
int main(){
while(cin >> m >> n)
cout << dfs(0, m, 0) << endl;
return 0;
}