1. 程式人生 > >遞迴的一道簡單題

遞迴的一道簡單題

題目描述

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


}