题解 | #放苹果#

放苹果

https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf

以(5,6)为例:
第一个place有5,4,3,2,1,五种情况;
i=5:执行(5,0,5)返回1;
i=4:执行(4,1,5)返回1;
i=3:执行(3,2,5)继续执行 i=2:(2,0,4)返回1;
i=1:(1,1,4)返回1;
返回2;
i=2:执行(2,3,5)继续执行 i=2:(2,1,4)返回1:
i=1:(1,2,4)执行i=1:(1,1,3)返回1: 返回2;
i=1;执行(1,4,5)继续执行i=1:(1,3,4)继续执行i=1:(1,2,3)继续i=1:(1,1,2)返回1; 返回7; 结束;

int recursion(int pro,int item, int place) {
    int sum = 0;
    if (item == 0)return 1;
    if (place == 0)return 0;
    if (item == 1)return 1;
    for (int i = min(pro,item); i >= 1; i--) {
        sum+=recursion(i,item - i, place - 1);
    }
    return sum;
}

alt

全部评论

相关推荐

allin实习的大白...:我把第二个项目发出来了,如果感兴趣可以去研究研究,欢迎交流。 https://gitee.com/jtyjtyjty333/ind-dist-ai-sec-edge-cloud https://github.com/jtylab/ind-dist-ai-sec-edge-cloud
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务