描述
把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用 K 表示)5,1,1 和 1,5,1 是同一种分法。
输入描述
第一行是测试数据的数目 t(0 ≤ t ≤ 20)。
以下每行均包含二个整数 M 和 N ,以空格分开。1 ≤ M,N ≤ 10。
数据范围与提示:
1 ≤ M,N ≤ 10。
输出描述
对输入的每组数据 M 和 N ,用一行输出相应的 K。
样例输入 1
1 7 3
样例输出 1
8
提示
数据范围与提示:
1 ≤ M,N ≤ 10。
#include <iostream>
using namespace std;
int main(){
int n,m,t,a[15][15]={0};
cin>>t;
while(t--){
cin>>m>>n;
for(int i=1;i<=10;i++){
a[i][1]=1;
a[1][i]=1;
a[0][i]=1;
}
for(int i=2;i<=m;i++){
for(int k=2;k<=n;k++){
if(i<k)
a[i][k]=a[i][i];
else
a[i][k]=a[i][k-1]+a[i-k][k];
}
}
cout<<a[m][n]<<endl;;
}
return 0;
}