递归的一道简单题

来源:互联网 发布:网络ip电话 通话中断音 编辑:程序博客网 时间:2024/05/22 21:13

题目描述

把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;
    }
    


}
原创粉丝点击