1.题目:
Problem Description
小糖爱吃糖,家中的糖果堆积如山。于是她闲着无聊,想把家中的糖果分到m个盒子中(每个盒子里的数目可以不同,盒子可以是空的),帮她算算可以有多少种方法分糖果?
Input
第一行输入t,表示后面t行输入n和m,表示她家有n个糖果以及m个盒子,(1 ≤ n ≤ 1000)
Output
对每组数据,输出一行:总的方法数
Sample Input
2
4 4
5 7
Sample Output
5
7
2.参考代码:
#include <iostream>
using namespace std;
int go(int m,int n){
if(m<0)
return 0;
else if(m==0 || n==1)
return 1;
else
return go(m-n,n)+go(m,n-1);
///go(m-n,n)表示可以都放,m-n就是n个都放在一个盒子,其他的再放
///go(m,n-1)表示可以有一个盒子不放
}
int main()
{
int t,m,n;
cin>>t;
while(t--)
{
cin>>m>>n;
cout<<go(m,n)<<endl;
}
return 0;
}