猴子爬山【Java】

2023-11-05

猴子爬山【Java】

一天一只顽猴想去从山脚爬到山顶,途中经过一个有个N个台阶的阶梯,但是这猴子有一个习惯: 每一次只能跳1步或跳3步,试问猴子通过这个阶梯有多少种不同的跳跃方式?

【输入描述】

输入只有一个整数N(0<N<=50)此阶梯有多少个阶梯

【输出描述】

输出有多少种跳跃方式(解决方案数)

【示例一】

  • 输入

    50
    
  • 输出

    122106097
    

【示例二】

  • 输入

    3
    
  • 输出

    2
    

【解题思路】

分析规律:

台阶个数,对应跳跃方案数
0个台阶,有1个方案。那就是不跳
1个台阶,有1个方案。跳1个台阶(1)
2个台阶,有1个方案。一个一个跳,跳两次(12)
3个台阶,有2个方案。一个一个跳,跳三次。以及一次性跳三阶(123,3)
4个台阶,有3个方案。(1234,14,34)
5个台阶,有4个方案。(12345,125,145,345)
6个台阶,有6个方案。(123456,1236,1256,1456,3456,36)
7个台阶,有9个方案。(123456789....369)

发现规律
1、台阶数n小于3时,都只有一种方案。
2、台阶数n大于等于3时,跳跃方案恰好等于(n-1)的台阶方案数+(n-3)的台阶方案数。例如:
台阶n=6的方案数等于5的台阶方案数+3的台阶方案数。

【代码】

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        int count = cal(num);
        System.out.println(count);
    }

    private static int cal(int num) {
        if (num < 3) {
            return 1;
        }
        return cal(num - 1) + cal(num - 3);
    }

    //台阶数:0  1  2  3  4  5  6  7  8  9
    //方案数:1  1  1  2  3  4  6  9  13 19
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猴子爬山【Java】 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe

随机推荐

  • Vue input输入框回车以后自动刷新页面

    今天测试提了一个bug 输入框输入barCode时 按下回车键应该是录入数量 但是却直接刷新页面了 一起来探究一下为什么 原因 W3C 标准中有如下规定 当一个form元素中只有一个输入框时 在该输入框中按下回车应提交该表单 解决方案 可以
  • 老男孩blog博文内容列表整理(博文索引)

    我花了点时间整理了下博文列表 如果有对大家有用的 我花了点时间整理了下博文列表 如果有对大家有用的 请直接拿下 请不要只当知识收藏家 如果喜欢收藏 我建议收藏古董 100 原创 生产环境多年经验总结 无任何测试不靠谱的博文 44 生产场景不
  • 职场恶霸00后,看完这篇你就知道了

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 组合

    定义类 就是新建了一种类型 type 有了类 我们接着构造相应类型的对象 更进一步 每个类型还应该有一个清晰的接口 interface 供用户使用 我们可以在一个新类的定义中使用其他对象 这就是组合 composition 组合是在Java
  • centos怎么卸载mysql

    centos怎么删除mysql centos删除mysql的方法 1 使用 rpm qa grep i mysql 命令查看mysql安装的服务 2 使用 rpm ev nodeps 服务名 命令将查询到的mysql服务全部删除即可 本教程
  • mysql导入报错 [Err] 1067 - Invalid default value for ‘create_time‘

    mysql导入报错 比较老的系统生成的数据库导入5 7时报错 Err 1067 Invalid default value for create time 先查询 select global sql mode 结果 ONLY FULL GR
  • 完美国际服务器维护中,《完美国际2》3月31日全服更新维护公告

    完美国际2 于3月31日早上8点起 全服停机进行更新维护 预计维护时间将持续4小时 请大家注意调整自己的游戏时间 由此给您带来的不便 敬请谅解 更新说明 一 暖春活动 花朝节 开启 一陂春水绕花身 花影妖娆各占春 冬去春来 春暖花开 祖龙城
  • netty源码分析(一)-启动

    对于netty的理解 首先要熟悉NIO相关的概念 可以参考学习这里 Java NIO 以NioServerSocket实现为例 netty的启动过程分析 netty的启动入口 我们一般会这样配置 ChannelFactory serverC
  • 俞敏洪经典语录

    女人如果因为觉得一个男生帅就跟嫁给他 这是好色 男生因为女生漂亮而娶她 是审美 为什么你不要自傲和自卑 你可以说自己是最好的 但不能说自己是全校最好的 全北京最好的 全国最好的 全世界最好的 所以你不必自傲 同样 你可以说自己是班级最差的
  • L2tp/Ipsec的搭建与使用

    1 直接上活 如果看到了这篇文章肯定兜了解了是干嘛的 不懂得直接百度吧 这里主要用来在家办公使用 2 主机是否支持pptp 返回结果为yes就表示通过 modprobe ppp compress 18 echo yes 3 是否开启了TUN
  • 医学图像处理代码

    线性变换 int y int aapix bb if y gt 255 y 255 if y lt 0 y 0 return y 开窗变换 int y int 255 pix cw ww 2 ww if y gt 255 y 255 if
  • 使用Syncthing搭建自己的私人网盘

    Syncthing是一款开源免费跨平台的文件同步工具 是基于P2P技术实现设备间的文件同步 不懂得可以问下搜索引擎 本期教程是教你如何搭建远程服务 与本地服务配合 达到文件实时备份的目的 同步网速取决于自己机器带宽的上限 理论是同步的节点越
  • app@debug/compileClasspath错误

    怀揣着对未来对希望 来到新公司当了一次接盘侠 首先这个项目用到的友盟和微信全是不好用的 找的我沸腾了 最后发现开发平台的包名是错误的 或者包名和签名是反着的 具体因为什么我就不说了 改完就算了 然后我前几天一直在改累积项目的问题 突然有一天
  • Golang版本管理之Goup

    本地管理go的不同版本管理 推荐使用 https github com owenthereal goup 安装 curl sSf https raw githubusercontent com owenthereal goup master
  • 2022国赛官方评审C题要点

    2022年C题评阅要点 本题通过对古代玻璃制品的化学成分数据分析 研究有无风化玻璃制品成分的变化规律 以及高钾 铅钡两种玻璃类型的化学成分统计规律 并探索亚分类的方法 进而可以依据未知分类的文物化学成分对文物进行准确的分类 本题数据的主要特
  • 怎么选酸奶

  • C# TCP/IP通讯协议的整理(二)附带——与欧姆龙PLC通讯

    进行了下优化 OmronParent中在new MyClient 时 设置端口号之前我是固定了 现在把它也开放出来 首先对MyClient类 进行一个小小的升级 添加发送和接收字节数组 using System using System C
  • [GXYCTF 2019]Ping Ping Ping

    禁了空格 并且不能用 IFS 因为 也禁了 ls发现 flag也被禁了 看index php的源码 cat IFS 9index php 可以base64编码绕过 echo ISF 9Y2F0IGZsYWcucGhw base64 IFS
  • AD16 如何锁定多根线 DDR3

    如何在altium designer中快速的锁定一整条信号线 如下图的DDR3走线 咱们随意选择一条 当你点击的时候 只能选中一部分 一 按下 Ctrl H 快捷键后 鼠标点击到要选中的线 你会发现 和这个线相关的线 过孔都被选中 如箭头所
  • 猴子爬山【Java】

    猴子爬山 Java 一天一只顽猴想去从山脚爬到山顶 途中经过一个有个N个台阶的阶梯 但是这猴子有一个习惯 每一次只能跳1步或跳3步 试问猴子通过这个阶梯有多少种不同的跳跃方式 输入描述 输入只有一个整数N 0