题解 | #放苹果#

放苹果

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

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
rl.on('line', function (line) {
    // m个苹果 n个盘子
    const [m, n] = line.split(' ').map(Number);  
    console.log(getCount(m,n)) 
});
function getCount(m, n) {
    // 当只有一个盘子或没有苹果是规定为一种方式
    if(n === 1 || m === 0){
        return 1
    } else if(n > m){
        // 盘子数量比苹果多、者会有n-m个盘子剩
        // 所以直接计算m个盘子m个苹果的摆放方式即可
        return getCount(m,m)
    }else {
        // 当都不是以上情况时,则只需计算不止一个盘子为空和所有盘子都不空的情况
        // 因为两种情况就可以包含所有情况了
        return getCount(m, n-1) + getCount(m-n, n)
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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