问题描述:把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编程:放苹果相关推荐

  1. 苹果软件java教程_java编程手册苹果最新版

    java编程手册苹果最新版是一款帮助初学者进一步学习Java编程知识的手机辅助软件.使用Java编程手册时,用户可以将自己编写的Java代码输入应用中,应用会帮忙指出编程语法上的错误并修改.Java编 ...

  2. 【操作系统】编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。请用P、V原语(wait和signal操作)实现爸爸、儿子、女儿三

    题目 编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果.请用P.V原语(wait和signal操作)实现爸爸.儿子.女儿三个并发 ...

  3. 牛客刷题:放苹果(编程题)

    题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...

  4. java递归分苹果_递归应用示例(放苹果)[较难 选听]

    ok,下面我们再看一个例子. 这个例子呢比较有意思. 这个例子名字叫放苹果.这是open jar 的上面比较经典的一道题目. 我们来看一下这个题目.说啊,有M个同样的苹果. 这M个苹果呢一模一样没有区 ...

  5. Java编程的逻辑 (39) - 剖析LinkedList

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  6. Java中的泛型 --- Java 编程思想

    前言 ​ 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...

  7. 谷歌 Java 编程风格指南

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://hawstein.com/201 ...

  8. Google JAVA编程风格

    目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才 ...

  9. Java 编程的动态性 第1 部分: 类和类装入--转载

    原文地址:http://www.ibm.com/developerworks/cn/java/j-dyn0429/ 本文是这个新系列文章的第一篇,该系列文章将讨论我称之为 Java 编程的动态性的一系 ...

最新文章

  1. 神同步!美国三地 Tesla 车主,自动驾驶都撞了警车
  2. 王思聪究竟上了多少次热搜?
  3. urlPatterns映射的规则
  4. 影响线型缩聚物分子量的因素_运城专业超高分子量聚乙烯油井内衬管生产基地...
  5. django国际化与html语言,Django 国际化
  6. ajax实现多级联动菜单,jquery 实现二级/三级/多级联动菜单的思路及代码
  7. 【OC底层】OC对象本质,如 isa, super-class
  8. 李沐老师在伯克利开新课了,深度学习教材已经开源,视频也会有的
  9. shell 编程-Expect
  10. OpenCart框架运行流程介绍opencart资料链接
  11. Unity2 学习 制作和动态加载预制体
  12. JAVA上百实例源码以及开源项目
  13. 抖音小程序开发教程之 02 创建第一个hello world 小程序(教程含源码)
  14. 英语语音篇 - 元音自然拼读
  15. 【081】Remove-无需注册的在线免费抠图工具
  16. USPS数据集处理及下载方法
  17. 某电商网站的数据库设计(6)——创建查询销售数据的视图
  18. 【关于微信小程序登录信息】 微信即将不再支持wx.getUserInfo() 授权弹出框 2018年5月12日
  19. python3 yield
  20. 基于TP5、EasyWeChat、fastadmin微信公众号网页授权登录

热门文章

  1. Win系统 - 如何添加新用户,怎么添加管理员帐户?
  2. Microsoft Surface 平板电脑
  3. [游戏数据表]泰拉瑞亚Terraria 全物品属性表
  4. android程序怎么执行,电脑怎么运行安卓手机程序【详细介绍】
  5. uni-app获取当前时间日期及之后7天和星期几
  6. MTK android 修改背光自动调节亮度最大值和最小值
  7. 日照喜来登酒店启幕;万豪旗下万枫酒店品牌首次亮相宁波;平湖万怡酒店正式开业 | 全球旅报...
  8. 计算机二级真题期刊论文模板,论文格式?二级标题是什么?
  9. 如何构建VoIP来是实现电话诈骗之——Asterisk的设置
  10. android 转场动画 监听,Android 中的转场动画及兼容处理