M个苹果放N个篮子,篮子可以为空,有多少种放法?
问题:
M个苹果放N个篮子,篮子可以为空,有多少种放法?
分析:
当m=0,或者n=1时候,只有一种放法,篮子只有一个,
当n=0,记作0种放法
当苹果数小于篮子数时候,即m<n时,其放法和m个苹果,m个篮子的情况时相等
当苹果数大于或者等于篮子数时候,即m>=n时,又可以分为两种情况
一种是每个篮子都至少有一个苹果的时候,一种是至少有一个空篮子的时候
代码:
import java.util.Scanner;public class AppleAndBasket {/** 问题:有m个苹果和n个篮子,有几种放法?篮子可以为空(131和113是一种放法)** 分析:当m=0,或者n=1时候,只有一种放法,篮子只有一个,* 当n=0,记作0种放法* 当苹果数小于篮子数时候,即m<n时,放法和m个苹果,m个篮子的情况时相等* 当苹果数大于或者等于篮子数时候,又可以分为两种情况* 一种是篮子都满的时候,一种是至少有一个空篮子的时候** */public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入篮子数");int n = scanner.nextInt();System.out.println("请输入苹果数");int m = scanner.nextInt();int i = method(n,m);System.out.println(i);}private static int method(int n, int m) {if (n == 1 || m == 0) {return 1;}if (n == 0) {return 0;}//苹果数小于篮子数,即2个苹果放5个篮子,和2个苹果放2个篮子的放法是一样的if (m < n) {return method(m,m);}//苹果数大于等于篮子数,分为两种情况if (m >= n) {//情况一:每个篮子里面都放有一个苹果,决定放法数的就是剩余苹果在n个篮子的放法数//情况二:至少有一个空篮子,即m个苹果在n-1个篮子的情况下的方法return method(n,m-n)+ method(n-1,m);}return 0;}}
M个苹果放N个篮子,篮子可以为空,有多少种放法?相关推荐
- m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法
package com.study; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...
- 算法题放苹果:把M个相同的苹果放到N个完全相同的盘子里,有多少种放法?
文章目录 题目描述 题解 思路1 暴力递归 思路2:缓存思想--动态规划来优化暴力递归 题目描述 链接:点我做题 题解 思路1 暴力递归 我们利用递归来解决这个问题,不妨这样思考,假设apples ...
- m苹果放n篮子_算法交流:666苹果放篮子【2.6基本算法之动态规划】-09
一:题目分析:题意大致为有M个苹果,放到N个篮子中,篮子可以为空,问有多少种方法. 二:算法说明 假设 int fun(int m,int n)为求有多少种方法的递归函数,我们易得 其中fun(m-n ...
- m个足球放入n个篮子中或者放苹果问题
把m个同样的足球放进n个同样的篮子里,允许有的篮子为空,问共有几种分法? 例如:3, 2, 1和2, 1, 3是同一种分法. 输入描述: 一行两个数字n,m(1<=n<=70,1<= ...
- m个苹果放入n个盘子问题
题目: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...
- 将m个苹果放入n个盘子的问题【转】
来自:http://blog.csdn.net/qq675927952/article/details/6312255 问题1: m----->相同, n---> 相同,可为空 将m个苹果 ...
- POJ 1664 求m个苹果放入n个盘子的不同放法数目 递归 分类讨论
通过分类讨论,将规模较大的问题转换成规模较小的相同问题,学会"降维",将索引值不断降小,就可以递归求解 设f(m,n)为把m个苹果放到n个盘子中的方法数,m>=0,n> ...
- m个苹果放入n个盘子
题目描述 放苹果问题:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法? (注:5,1,1和1,1,5是同一种分法) 解题分析: 设f(m,n) 为m个苹果,n个盘子 ...
- 递归算法《M个苹果放入N个盘子》
题目: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...
- POJ 1664 苹果放盘子(递归)
题目链接:http://poj.org/problem?id=1664 m个相同的苹果放在n个相同的盘子里,有多少种不一样的方法. 例如,3个苹果放在4个盘子里有(3,0,0,0)(1,1,1,0)( ...
最新文章
- C#2.0实例程序STEP BY STEP--实例二:数据类型
- SpaceX龙飞船发射之后:在人类探索太空的征途中,深度学习能做什么?
- 【2015-10-19】内存管理---深浅拷贝,autorelease,ARC(自动引用计数)
- 聊一聊:我退钱了!你呢?
- 国内一线互联网公司内部面试题库
- priority_queue优先队列
- 学计算机的误解,让人误解的六大专业
- _Linux中功能强大的截图工具 - Flameshot
- 贪心算法(各种贪心题目)
- java反射机制中的getDeclaredField()
- JAVA---MYSQL 基本知识点 第一部分
- 西门子PLC与Intouch软件以太网通讯
- exp 导数oracle,指数函数 exp(x) 导数的直接求法
- linux系统下 usb网卡的驱动安装
- Endurance International Group任命曼尼什达拉尔为亚太区董事总经理
- TFN2.5G传输分析仪FT100-D300S——网络传输搭建维维护
- 【离散数学】谓词逻辑
- 用u盘制作简易dos启动盘
- lcs算法c语言代码,动态规划算法-LCS
- xls和 xlsx的区别 xlsx Excel文件怎么转换成 xls文件