java编程:放苹果
问题描述:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入描述:两个int型整数(第一个为苹果数,第二个为盘子数)
输出描述:分法,int型整数
/* 解题分析:
设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论,
当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m)
当n<=m:不同的放法可以分成两类:
1、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1);
2、所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即f(m,n) = f(m-n,n).
而总的放苹果的放法数目等于两者的和,即 f(m,n) =f(m,n-1)+f(m-n,n)
递归出口条件说明:
当n=1时,所有苹果都必须放在一个盘子里,所以返回1;
当没有苹果可放时,定义为1种放法;
递归的两条路,第一条n会逐渐减少,终会到达出口n==1;
第二条m会逐渐减少,因为n>m时,我们会return f(m,m) 所以终会到达出口m==0.
*/
实现部分:
import java.util.Scanner;public class putApple {public static void main(String[] args){Scanner sc = new Scanner(System.in);while(sc.hasNext()){int apple = sc.nextInt();int panel = sc.nextInt();System.out.println(fun(apple,panel));}}private static int fun(int apple, int panel) {if (apple == 0 || apple == 1 || panel == 1){return 1;}else if (apple < panel){return fun(apple,apple);}else {return fun(apple,panel-1) + fun(apple-panel,panel);}}
}
java编程:放苹果相关推荐
- 苹果软件java教程_java编程手册苹果最新版
java编程手册苹果最新版是一款帮助初学者进一步学习Java编程知识的手机辅助软件.使用Java编程手册时,用户可以将自己编写的Java代码输入应用中,应用会帮忙指出编程语法上的错误并修改.Java编 ...
- 【操作系统】编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。请用P、V原语(wait和signal操作)实现爸爸、儿子、女儿三
题目 编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果.请用P.V原语(wait和signal操作)实现爸爸.儿子.女儿三个并发 ...
- 牛客刷题:放苹果(编程题)
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...
- java递归分苹果_递归应用示例(放苹果)[较难 选听]
ok,下面我们再看一个例子. 这个例子呢比较有意思. 这个例子名字叫放苹果.这是open jar 的上面比较经典的一道题目. 我们来看一下这个题目.说啊,有M个同样的苹果. 这M个苹果呢一模一样没有区 ...
- Java编程的逻辑 (39) - 剖析LinkedList
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- Java中的泛型 --- Java 编程思想
前言 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...
- 谷歌 Java 编程风格指南
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://hawstein.com/201 ...
- Google JAVA编程风格
目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才 ...
- Java 编程的动态性 第1 部分: 类和类装入--转载
原文地址:http://www.ibm.com/developerworks/cn/java/j-dyn0429/ 本文是这个新系列文章的第一篇,该系列文章将讨论我称之为 Java 编程的动态性的一系 ...
最新文章
- 神同步!美国三地 Tesla 车主,自动驾驶都撞了警车
- 王思聪究竟上了多少次热搜?
- urlPatterns映射的规则
- 影响线型缩聚物分子量的因素_运城专业超高分子量聚乙烯油井内衬管生产基地...
- django国际化与html语言,Django 国际化
- ajax实现多级联动菜单,jquery 实现二级/三级/多级联动菜单的思路及代码
- 【OC底层】OC对象本质,如 isa, super-class
- 李沐老师在伯克利开新课了,深度学习教材已经开源,视频也会有的
- shell 编程-Expect
- OpenCart框架运行流程介绍opencart资料链接
- Unity2 学习 制作和动态加载预制体
- JAVA上百实例源码以及开源项目
- 抖音小程序开发教程之 02 创建第一个hello world 小程序(教程含源码)
- 英语语音篇 - 元音自然拼读
- 【081】Remove-无需注册的在线免费抠图工具
- USPS数据集处理及下载方法
- 某电商网站的数据库设计(6)——创建查询销售数据的视图
- 【关于微信小程序登录信息】 微信即将不再支持wx.getUserInfo() 授权弹出框 2018年5月12日
- python3 yield
- 基于TP5、EasyWeChat、fastadmin微信公众号网页授权登录
热门文章
- Win系统 - 如何添加新用户,怎么添加管理员帐户?
- Microsoft Surface 平板电脑
- [游戏数据表]泰拉瑞亚Terraria 全物品属性表
- android程序怎么执行,电脑怎么运行安卓手机程序【详细介绍】
- uni-app获取当前时间日期及之后7天和星期几
- MTK android 修改背光自动调节亮度最大值和最小值
- 日照喜来登酒店启幕;万豪旗下万枫酒店品牌首次亮相宁波;平湖万怡酒店正式开业 | 全球旅报...
- 计算机二级真题期刊论文模板,论文格式?二级标题是什么?
- 如何构建VoIP来是实现电话诈骗之——Asterisk的设置
- android 转场动画 监听,Android 中的转场动画及兼容处理