算法训练 未名湖边的烦恼  时间限制:1.0s   内存限制:256.0MB问题描述每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式两个整数,表示m和n输出格式一个整数,表示队伍的排法的方案数。样例输入3 2样例输出5数据规模和约定m,n∈[0,18]问题分析

解题思路:这是一种类似汉诺塔问题的题目,首先要保证换鞋的人m 多于借鞋的人n。否则,无论怎么排序,都是会出现无鞋可借的尴尬局面。

所以,首先判断(m>n),否则返回0,表示没有方法来排序。

package com.sihai.advance;import java.util.Scanner;public class Mominghudeyoushang {public static int fun(int m,int n)  {  if(m<n)  {  return 0;  }  else if (n==0)  {  return 1;  }  else return fun(m-1,n)+fun(m,n-1);  } public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int m = scanner.nextInt();int n = scanner.nextInt();System.out.println(fun(m,n));}
}

注意:这里的return fun(m-1,n)+fun(m,n-1) 前面的fun(m-1,n)意思是还鞋子的一个人站在最前面,之后剩下的哪些人再接着排序,fun(m,n-1) 意思是借鞋子的人站在最后面,剩下的再接着排序。

下面再看一个例子:

爬楼梯问题:
一段楼梯共n级台阶,每次只能走一级或两级,问共有多少种走法?列出n=10时的所有走法。

乍看知道问题感觉还是稍显的有些麻烦,我们这样子来想,假如 n = 7 时,最后一步是会有f(7) = f(5) + f(6)

得在 n = 1和2的时候,我们得到f(1),f(2)为1

所以,我们到下面的公式

说白了,这个其实就是斐波那契数列

 package com.sihai.advance;public class ClimbStairs {  public int stairs(int n) {  if (n == 1)  return 1;  if (n == 2)  return 2;  else {  return stairs(n - 1) + stairs(n - 2);  }  }  public static void main(String[] args) {  int n = 7;  ClimbStairs cs = new ClimbStairs();  int sum = cs.stairs(n);  System.out.println(sum);  }  }  

蓝桥杯-未名湖边的烦恼(java)相关推荐

  1. 蓝桥杯 未名湖边的烦恼

    蓝桥杯 未名湖边的烦恼 问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个 ...

  2. 蓝桥杯 未名湖边的烦恼 引发的递归问题探讨

    未名湖边的烦恼 问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要 ...

  3. 蓝桥杯 未名湖边的烦恼

    <span style="font-size:18px;">问题描述每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常 ...

  4. 2022年第十三届蓝桥杯大赛软件省赛Java学B组试题

    第十三届蓝桥杯大赛软件省赛Java学B组试题 一.试题截图 1. 星期计算 这道题是可以直接用笔算起来的,我算出来的答案是5,(2022整除7 余6,六天后就是星期五)但目前官方答案还不知道是什么? ...

  5. 第十三届蓝桥杯模拟赛第二期JAVA组个人题解

    第十三届蓝桥杯模拟赛第二期JAVA组个人题解 文章目录 第十三届蓝桥杯模拟赛第二期JAVA组个人题解 题目1 题目2 题目3 题目4 题目5 题目6 题目7 题目8 题目9 题目10 题目1 小蓝的I ...

  6. 蓝桥杯练习系统之基础训练Java版(2-26)—— 报时助手

    蓝桥杯练习系统之基础训练Java版(2-26)-- 报时助手 **难度等级:普通****关键字:字符串 条件判断** 问题描述: 给定当前的时间,请用英文的读法将它读出来.时间用时h和分m表示,在英文 ...

  7. 蓝桥杯练习系统-入门训练java版

    蓝桥杯练习系统-入门训练:http://lx.lanqiao.cn/problemset.page?code=BEGIN-&userid=301077 package 蓝桥杯系统入门训练;im ...

  8. 第十三届蓝桥杯大赛软件类决赛Java大学B组C题——左移右移

    [问题描述] 小蓝有一个长度为 N 的数组,初始时从左到右依次是 1, 2, 3, . . . N. 之后小蓝对这个数组进行了 M 次操作,每次操作可能是以下 2 种之一: 左移 x,即把 x 移动到 ...

  9. 第六届蓝桥杯大赛个人赛省赛Java B组真题

    文章目录 第六届蓝桥杯大赛个人赛省赛Java B组真题 1. 三角形面积(结果填空) 2. 立方自变身(结果填空) 3. 三羊献瑞(结果填空) 4. 循环节长度(代码填空) 5. 九数组分数(代码填空 ...

最新文章

  1. 代码之美——Doom3源代码赏析2
  2. C++ 常用函数方法
  3. Java学习day2
  4. vagrant 基本命令讲解
  5. 浏览器兼容CSS渐进增强 VS 优雅降级如何选择
  6. es 时间字段聚合_ES之五:ElasticSearch聚合
  7. 《天天数学》连载23:一月二十三日
  8. Python人脸识别的简要介绍(附实例、Python代码)
  9. python高阶函数(三分钟读懂)
  10. 【实物】端到端自动驾驶搭建教程(二)附完整资料
  11. 报错:1130-host ... is not allowed to connect to this MySql server
  12. 超 短 高精度 bign 模板
  13. SpringBoot 整合 JPA
  14. SkeyeARS 全景AR增强监视系统解决方案
  15. 氩弧焊机的电气图_氩弧焊机的工作原理以及接线图
  16. 微信公众号文章如何设置关键词自动回复链接
  17. ValueError: bad transparency mask
  18. Mongodb节点同步失败状态“ RECOVERING ”恢复
  19. 记录一次dns劫持及其解决办法
  20. springboot整合redis做缓存

热门文章

  1. Anaconda闪退问题
  2. VS2017-VC++中慎用sizeof
  3. IAR 使用小技巧--持续更新
  4. 多线程还是多进程的选择及区别
  5. Linux内核中断底半部处理--工作队列
  6. 六、前端开发-JavaScript DOM
  7. 波卡链Substrate (2)系统框架
  8. 百度超级链XChain(2)p2p网络
  9. 设计模式(二)————观察者模式
  10. KPROCESS 结构体属性介绍