题解 | #放苹果#

放苹果

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

递归: 苹果数目m,盘子数目n,f (m,n)表示m个苹果,n个盘子有多少方法
(1)m < n,必有n-m个盘子空着,则至多使用m个盘子,有f (m,m)种方法;
(2)m > n时间
a、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1);
b、所有盘子都有苹果,将m-n个苹果再随意分配n个盘中,即f(m,n) = f(m-n,n).
总的放苹果的放法数目等于两者的和,即 f(m,n) =f(m,n-1)+f(m-n,n) 
using System;
using System.Linq;

namespace HJ61{
    class Solution{
        public static void Main(){
            var input = Console.ReadLine();
            var data = input.Split(' ');
            data = data.ToArray();
            int appleNum = Convert.ToInt32(data[0]);
            int planeNum = Convert.ToInt32(data[1]);
            var res = count(appleNum, planeNum);
            Console.WriteLine(res);
        }
        public static int count(int m, int n){
            if(m == 0 || n == 1) return 1;
            if(n > m) return count(m, m);
            else return count(m, n-1) + count(m-n,n);
        }
    }
}


全部评论
这道题其实蛮难的
点赞 回复 分享
发布于 2022-10-20 21:24 广东

相关推荐

挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务