首页 > 代码库 > m个苹果放在n个盘子里面有多少种放法?(动态规划)

m个苹果放在n个盘子里面有多少种放法?(动态规划)

m个苹果放在n个盘子里面有多少种放法?(动态规划)

实现代码如下:

#include <iostream>
using namespace std;
int s(int m ,int n)
{
    if(m==0||n==1){
        return 1;
    }
    if(m<n)
    {
        return s(m,m);
    }
    if(m>=n) {
        return s(m, n - 1) + s(m - n, n);
    }
    return 0; 
}
int main() {
    int m,n;
    while(cin>>m>>n)
    {
        cout<<s(m,n)<<endl;
    }
    return 0;
}

运行结果如下:

技术分享

 

m个苹果放在n个盘子里面有多少种放法?(动态规划)