package com.study;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;/*** * @author acer* @date 2014-09-15* * m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法* * 思路解析:*         step1:每个筐里先放一个苹果,剩余m-n个苹果*        step2:m-n个苹果最多放在m-n个筐里,由于所有的筐都认为是一样的,将筐编号为1-n,*                后面的筐里放的苹果必须大于等于前面筐里的苹果数。设剩余苹果数为left,剩余要*             放的筐为n,前一个筐里的苹果数为first。则每次放完当前一个后,向后继续放*        递归函数:D(int first,int n,int left);
示例:8个苹果放入3个筐里
step1:每个筐先放一个,剩余5个
step2:5个苹果放到3个筐里,可能的方法为:(005)(014)(023)(113)(122)*/
public class DistributeApple {public static int count=0;public static void main(String[] args) {// TODO Auto-generated method stubwhile(true){count=0;System.out.print("请输入苹果数:");InputStreamReader isr=new InputStreamReader(System.in);BufferedReader bf=new BufferedReader(isr);String numString=null;try {numString = bf.readLine().toString();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}int num1=Integer.parseInt(numString);System.out.print("请输入筐数:");try {numString=null;numString = bf.readLine().toString();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}int num2=Integer.parseInt(numString);DistributeApple da=new DistributeApple();if(num1>num2){                        da.distributeApple(0, num2, num1-num2);     }else if(num1==num2){count++;}      System.out.println("一共有"+count+"种放法");}}public DistributeApple(){}void distributeApple(int first, int n, int left){//first:第一个筐的苹果数    n:筐的数量     left:剩余苹果    if(n==0){return;}else if(n==1){count++;System.out.println( first+"  "+ n+"   "+ left +"  "+count);}else{for(int k=first;k<=left/n;k++)             distributeApple(k,n-1,left-k);}}}

m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法相关推荐

  1. 算法题放苹果:把M个相同的苹果放到N个完全相同的盘子里,有多少种放法?

    文章目录 题目描述 题解 思路1 暴力递归 思路2:缓存思想--动态规划来优化暴力递归 题目描述 链接:点我做题 题解 思路1 暴力递归   我们利用递归来解决这个问题,不妨这样思考,假设apples ...

  2. 苹果隐藏app_iOS14资源库功能被网友集体吐槽:隐藏的App都被看到了

    本周,苹果发布了一年一度的重磅更新iOS 14,其中增加了许多新功能,比如主屏幕上的小组件.画中画和翻译等,让人眼前一亮. 然而,iOS14有一个新功能被网友集体吐槽,那就是"资源库&quo ...

  3. 第T题 详解放苹果(递归) =========== 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t < ...

  4. M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放的算法

    把 M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K 表示)注意:5,1,1 和1,5,1 是同一种分法 eg:输入7,3 输出 8 思路: 本题我们采用递 ...

  5. 苹果电脑怎么删除移动硬盘里的文件,苹果电脑无法删除移动硬盘文件

    苹果电脑怎么删除移动硬盘里的文件?也不能进行复制.编辑.移动等操作,只能够打开文件进行查阅,是因为移动硬盘是NTFS格式的,这种格式在Mac电脑上只允许被查阅. Mac为何不能正常读写NTFS移动硬盘 ...

  6. (多线程同步练习)桌子上有一只盘子,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子里的橘子,一个女儿专等吃盘子里的苹果。写出能使爸爸、妈妈、儿子、女儿正确同步工作的

    这是操作系统的一道课堂练习题 题目完整描述: 桌子上有一只盘子,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子里的橘子,一个女儿专等吃盘子里的苹果.写出能使爸爸.妈 ...

  7. 手机里竟然有这么多传感器!终于都搞懂了

    手机里竟然有这么多传感器!终于都搞懂了 本文来自快科技 随着技术的进步,手机已经不再是一个简单的通信工具,而是具有综合功能的便携式电子设备.手机的虚拟功能,比如交互.游戏.都是通过处理器强大的计算能力 ...

  8. dnf如何快速拾取物品_DNF游戏里的一些便利性功能,每个都非常实用

    本文来源:DNF官方论坛,作者:游马,如有问题请联系删除 地下城与勇士里面有很多的便利性功能,几乎每次版本更新都会带有游戏便利性功能优化,这些便利性功能可以给玩家带来更好的游戏体验,也可以帮助玩家节约 ...

  9. 回顾艾维在苹果的15款最经典设计:最后一个特别大

    回顾艾维在苹果的15款最经典设计:最后一个特别大 网易科技讯 6月28日消息,据外媒报道,苹果首席设计官乔尼·艾维(Jony Ive)宣布,他将于今年晚些时候离开公司,并将成立自己的设计公司,苹果将是 ...

最新文章

  1. Xmas is coming....
  2. ExpandableListView的使用以及信息的高亮显示
  3. avalon源码分析(转)
  4. Java基础编程题——水仙花数
  5. Win10下安装并配置Python环境变量以及pip的安装、更新与使用
  6. Tencent QQ/TIM 文件下载漏洞的研究
  7. JTT 809-2019客户端与服务端协议开发
  8. pandas task-08
  9. php实现用户登录、注册以及修改功能(附加源码~)
  10. 普歌-云言团队-SSM系列与Spring框架入门
  11. git将项目提交到本地创库
  12. 从Darry Ring看奢侈品该如何玩转互联网思维
  13. 基于Token的身份验证的原理
  14. matplotlib绘制图表
  15. C++的内联函数和非内联函数的区别
  16. 火车头V9翻译插件-终极稳定版(翻译10000篇文章不报错)
  17. MATLAB文件操作
  18. nrf51822 52832学习汇总
  19. Scrapy第十五篇:后起之秀-Playwright
  20. nargin在matlab中是什么意思

热门文章

  1. 安装2017su提示c++2014不能安装问题解决办法
  2. php barcode_php 生成条形码
  3. 怎么会是lucene?
  4. python python中max()函数的用法
  5. color a dir/s_小米手表Color运动版详细评测 比标准版加量减价在哪里?|屏幕|小米手表color|小米手表|小米|续航...
  6. WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)
  7. android 锯齿
  8. 【云笔记9】Layui前端框架
  9. 朋友千千万,知己有几人。转些短句。
  10. time_expire时间过短,刷卡至少1分钟,其他5分钟