题目描述
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
递归,有时会有效率问题,自上而下时间复杂度很大,自下而上会更好一些;有时自上而下解决问题效果很好,不得不用;
动态规划中递归使用广泛
#include<iostream>
using namespace std;int test(int m,int n)
{
if(m<0)
return 0;
if(n==1)
return 1;
return test(m,n-1)+test(m-n,n);
}
int main()
{
int sum,m,n;
while(cin>>m>>n)
{
sum=test(m,n);
cout<<sum<<endl;
}
}