题解 | #放苹果#

放苹果

https://www.nowcoder.com/practice/4f0c1e21010e4d849bde5297148e81d9

#include <bits/stdc++.h>
#define MAX 10
using namespace std;


int fun(int m, int n) {
    if (m == 0 || n == 1)   //没有苹果或只有一个盘子时,都是一种放法
        return 1;

    if (m < n)
        return fun(m, m);   //盘子过多,则始终有n-m个盘子为空,抽取也不影响结果
    else    //m >= n
        return fun(m, n - 1) + fun(m - n,n); //含有0的方案数 + 不含有0的方案数
}

int main() {
    int dp[MAX];
    int m, n;
    cin >> m >> n; //m个苹果、n个盘子
    cout << fun(m, n);

}

全部评论

相关推荐

点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务