题解 | #放苹果#

放苹果

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

#include <stdio.h>

int apple(int m, int n){
    if(m == 0 || n == 1)
        return 1;
    else if (m < n)
        return apple(m, m);
    else
        return apple(m - n, n) + apple(m, n - 1);


}

int main(){

    int m, n;
    scanf("%d %d", &m, &n);
    printf("%d", apple(m, n));


    return 0;
}

全部评论
假设我们有 $f(m,n)$ 种方法把 $m$ 个苹果放入 $n$ 个盘子中,那么对于任意的 $m$ 和 $n$,可以得到以下递归式: 如果 $m < n$,则无法将苹果平均放入盘子中,此时有 $f(m,n) = f(m,m)$。 如果 $m \geq n$,则有两种情况: 至少有一个盘子为空,此时有 $f(m,n-1)$ 种方法; 每个盘子都至少有一个苹果,此时有 $f(m-n,n)$ 种方法。
点赞 回复 分享
发布于 2023-02-25 16:14 陕西

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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