初学算法之递归---放苹果

简介: 初学算法之递归---放苹果
/**
 * @ClassName 放苹果
 * @Author ACER
 * @Description 把M多个同样的苹果放在n个同样的盘子里
 * 允许有的盘子空着不放问共有多少不同的方法。
 *
 * 分析:有两种情况:1.盘子数大于苹果数 f(m,m)
 *                2.盘子数小于苹果数 有两种情况:
 *                一,存在空盘子情况,二,不存在空盘子情况
 *                存在:f(m,n-1)意思把m个苹果放在n-1个盘子里 空出一个盘子
 *                不存在空盘子 f(m-n,n) 先用苹果把铺满盘子 剩下的继续放 
 *                
 * @Date 2021/7/10 15:19
 * @Version 1.0
 **/
public class 放苹果 {
    public static void main(String[] args) {
    }
    public static int place(int M,int N){
        if (M<N){
            return place(M, M);
        }
        if (M==0){
            return 1;
        }
        if (N==0){
            return 0;
        }
        return place(M,N-1)+place(M-N,N);
    }
}
目录
打赏
0
0
0
0
0
分享
相关文章
|
2月前
|
算法系列之递归反转单链表
递归反转链表的基本思路是将当前节点的next指针指向前一个节点,然后递归地对下一个节点进行同样的操作。递归的核心思想是将问题分解为更小的子问题,直到达到基本情况(通常是链表末尾)。
50 5
算法系列之递归反转单链表
|
10月前
|
算法笔记:递归(c++实现)
算法笔记:递归(c++实现)
|
5月前
|
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
115 2
数据结构与算法学习十二:希尔排序、快速排序(递归、好理解)、归并排序(递归、难理解)
这篇文章介绍了希尔排序、快速排序和归并排序三种排序算法的基本概念、实现思路、代码实现及其测试结果。
128 1
数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
本文详细介绍了递归的概念、重要规则、形式,并展示了递归在解决打印问题、阶乘问题、迷宫问题和八皇后问题等经典实例中的应用。
110 0
|
8月前
|
【算法】递归、搜索与回溯——汉诺塔
【算法】递归、搜索与回溯——汉诺塔
118 1
|
9月前
|
python中算法递归错误(Recursion Errors)
【7月更文挑战第18天】
169 1
|
8月前
|
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
193 0
|
8月前
|
【算法】递归、搜索与回溯——简介
【算法】递归、搜索与回溯——简介

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等