Java 华为真题-猴子爬山

2023-11-17

需求:

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

输入描述

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

输出描述

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

 

输入

3

输出

2

 

输入

50

输出

122106097

分析:

上山最后一步到达第50级台阶,完成上山,共有f(50)种不同的爬法,

到第50级之前位于哪一级呢?无非是位于第49级(上跳1级即到),有f(49)种;

或位于第48级(上跳3级即到),有f(48)种,于是:

f(50)=f(49)+f(47)
f(49)= f(48)+f(46)
f(48)= f(47)+f(45)
依次类推
以此类推,一般地有递推关系:

f(n)=f(n-1)+f(n-3) (n>3)
初始条件:

f(1)=1,即1=1;

f(2)=1,即2=1+1(注意:跳法中不允许直接跳2级);

f(3)=2,即3=1+1+1,3=3;

故此递推设计比较简单,时间复杂度为O(n)

编码:

public class TestDump {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入阶梯数:");
        int num=scanner.nextInt();
        System.out.println(showF(num));
    }

    /**
     * 递归算法f(n) = f(n-1) + f(n-3);
     * f(1) =1;f(2) =1;f(3) = 2
     */
    public static long showF(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        if (n == 3) {
            return 2;
        }
        return showF(n - 1) + showF(n - 3);
    }
}

效果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 华为真题-猴子爬山 的相关文章

  • javax.naming.NameNotFoundException

    我正在 JBoss 5 容器中运行 ejb 示例 我正在使用一个例子从这里开始 第一部分 http www roseindia net jboss jboss 3 2 shtml 在示例中 我在 JBoss 中部署了 bean 并在 Tom
  • 可以显式删除 lambda 的序列化支持

    As 已经知道 https stackoverflow com a 22808112 2711488很容易添加序列化当目标接口尚未继承时支持 lambda 表达式Serializable 就像 TargetInterface Seriali
  • Lambda 表达式更慢?

    我有下面这段代码 PriorityQueue
  • 设置 MetaspaceSize 的指南 - java 8

    64 位服务器的 MetaspaceSize 默认值是多少 我在官方文档中没有找到它 我观察到 在服务器 JVM 进程中 GC 频率有时会变高并持续增长 如果我重新启动服务几次 它就会恢复稳定 我认为这是由于 JRE 升级造成的 JVM 堆
  • EDITLogBack Syslog 不工作 java

    我写了一个简单的项目来在 Ubuntu 中运行日志 方法如下example https examples javacodegeeks com enterprise java logback logback syslog example 应用
  • Java ZIP - 如何解压缩文件夹?

    是否有任何示例代码 如何将 ZIP 中的文件夹部分解压到我想要的目录中 我已将文件夹 FOLDER 中的所有文件读取到字节数组中 如何从其文件结构创建 我不确定你所说的部分是什么意思 您的意思是在没有 API 帮助的情况下自己完成吗 如果您
  • 如何在生产中安全地更改会话 cookie 域或名称?

    我们最近意识到我们的会话 cookie 正在被写入我们网站的完全限定域名 www myapp com 例如 MYAPPCOOKIE 79D5DB83 domain www myapp com 我们希望将其切换为可以跨子域共享的cookie
  • 在 JUnit 测试中读取资源文件

    我在单元测试中读取文本文件 并将一些输入文本文件放置在资源文件夹中 以下是目录结构 src gt com gt au gt myapp gt util gt MyFileReader 测试 gt com gt au gt myapp gt
  • 飞碟中的外部 CSS

    我想知道如何在 Flying Saucer 中包含外部 CSS 在此之前THB我检查了所有可用的链接StackOverflow但它们没有帮助 这就是为什么我自己做这个的原因 TestCSS xhtml重命名版本TestCSS html 所以
  • Android 改造参数化@Headers

    我正在使用 OAuth 每次发出请求时都需要将 OAuth 令牌放入标头中 我看到 Header注释 但是有没有办法让它参数化 以便我可以在运行时传入 这是概念 Header Authorization OAuth var api vers
  • 如何在打开导航抽屉时使背景 Activity 变小?

    我想做我的背景Activity打开时稍微小一点Navigation Drawer 模拟存在的效果Airbnb应用 我想最好的解释是截图 但重点不是让 View 变小 而是让它成为与 Drawer 打开 关闭动画同步的动画 因此 如果您开始打
  • 如何在 Google 地图中创建自定义地图?

    我正在尝试创建一个包含我家地图的 Google 地图应用程序 卧室 浴室 厨房等 使用 GPS 我会找到我现在在家里的位置 并尝试获取到我卧室的方向 步行距离 您可以使用Google的API来获取方向 我需要知道的是 如何添加我家的自定义地
  • Spring Oauth2. DaoAuthenticationProvider 中未设置密码编码器

    我对 Spring Oauth 和 Spring Security 很陌生 我正在尝试在我的项目中使用 client credentials 流程 现在 我设法使用自己的 CustomDetailsS ervice 来从系统中已存在的数据库
  • 如何将模型从 ML Pipeline 保存到 S3 或 HDFS?

    我正在尝试保存 ML Pipeline 生成的数千个模型 正如答案中所示here https stackoverflow com questions 32121046 run 3000 random forest models by gro
  • SWIG C 函数指针和 JAVA

    我有一些 C 代码 其中一个方法有一个函数指针作为参数 我正在尝试在我的 Android 应用程序中使用 C 代码 我决定使用 SWIG 来完成生成我需要的 java 文件的所有工作 一切都适用于常规函数 没有函数指针作为参数的函数 但我不
  • java.lang.OutOfMemoryError:尝试将 Java 对象转换为 Json 字符串时的 Java 堆空间

    我尝试将 csv 文件转换为 200K 对象的 Json 文件 其中对象代表 csv 中的 1 行 我在 32 位上安装了 Java 并且项目配置 VM 参数 Xmx1024m 但是我得到 Exception in thread main
  • 如何通过sparkSession向worker提交多个jar?

    我使用的是火花2 2 0 下面是我在 Spark 上使用的 java 代码片段 SparkSession spark SparkSession builder appName MySQL Connection master spark ip
  • JAXB 枚举字段未序列化

    我有以下课程 package dictionary import java io Serializable import java util Objects import javax xml bind annotation XmlEleme
  • POJO 支持使用omnifaces 自动完成primefaces

    我正在尝试在我的项目中使用 primefaces 自动完成组件 以避免将特定转换器写入我尝试使用的每个列表对象全能面孔 http showcase omnifaces org converters ListConverter如建议的here
  • 如何在 Android 上设置 Google Drive API?

    我一直在尝试将 Google Drive 功能集成到我的应用程序中 但我无法使用任何内置功能 因此我相信我要么错过了一个步骤 要么做得不正确 我正在遵循官方的 Google 开发者指南 https developers google com

随机推荐

  • 利用外部程序对存储BIOS设置参数的CMOS RAM进行读取操作的可行性分析

    电脑的启动过程如下 机后主动执行BIOS程序 可以通过BIOS去设置CMOS 也可以不设置 然后BOIS会去识别操作系统引导设备的引导分区 一般也就是电脑里的硬盘中的第一个扇区 这个扇区中有分区表和主引导分区MBR 我们找到了MBR MBR
  • 【AcWing30】正则表达式匹配(动态规划)

    dp i j 表示 s 0 i 的字符串与p 0 j 的字符串是否匹配 那么有以下几个转换状态 1 p j 1 是字母 而且与 s i 1 相等 那么当前dp i j 是否匹配就依赖于dp i 1 j 1 2 p j 1 是 那么肯定与s
  • GoogleTest安装和搭建自动测试环境

    一 GoogleTest安装 1 下载GoogleTest源代码 sudo apt get install libgtest dev 2 编译源代码 1 安装完源代码后 继续在终端中输入 cd usr src gtest切换到源码存放的地方
  • 高斯分布的极大似然估计

    本文是关于 coursera 上 Robotics Estimation and Learning 课程的笔记 前面通过一个例子简单地介绍了极大似然估计的意思 现在来对高斯分布做极大似然估计 一维高斯分布 概率密度函数 一维高斯分布 Gau
  • dialog弹窗表单居中

    内容居中只需要设置样式就可以了 不用太复杂了 el dialog body display inline block
  • Java操作json的通用类

    package com baiyyy polabs util json import java text ParseException import java util ArrayList import java util Date imp
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 云服务器+云数据库+WordPress搭建网站

    本文已在个人网站上发表 地址 http www bookmonster club 一 硬件环境 1 本地主机 window10系统 2 腾讯云服务器 Windows Server 2016 数据中心版 64位中文版 3 腾讯云数据库 Cyn
  • 知识越分享,收获越多。

    好处一 分享能更快地提升自己 分享知识对人是有考验的 因为做分享 首先要在脑袋里回顾 总结这个知识点 然后通过语言或文字表达出来 这个过程考验了对知识的掌握程度 可以增强我们的思考能力 语言表达能力和文字表达能力 很多时候 我们以为自己知道
  • ./configure: error: C compiler cc is not found

    CentOS 执行 configure 编译命令 时出现 checking for C compiler not found 解决方法 执行以下命令 yum y install gcc gcc c autoconf automake mak
  • dva中model中effect中获取state中的数据

    model export default modelExtend pageModel namespace storeIf state id effects update payload call put select const data
  • 如何快速确定程序的入口

    前言 在阅读代码时 知道程序的入口十分重要 这有助于快速理清程序的逻辑框架 我们找到程序入口后 顺着代码的执行顺序来阅读代码 可以比较容易的理解代码 这里说的代码是编译后成为可执行程序的代码 在linux中就是elf格式 被编译成可执行程序
  • 【学习笔记】模糊控制算法

    本文目录 0 前言 1 概述 2 模糊集合 2 1 集合和论域 2 2 模糊集合的概念 2 3 模糊集合的表示方式 2 4 模糊集合的运算 3 模糊关系与模糊关系合成 3 1 笛卡尔积 3 2 关系与模糊关系 3 3 模糊关系的运算 3 4
  • 自动生成代码的配置generator.properties

    u4EE3 u7801 u751F u6210 u5668 uFF0C u914D u7F6E u4FE1 u606F u5305 u540D package com zscat cms u4F5C u8005 author zscat E
  • python使用scipy.optimize的fsolve求解线性(非线性)方程

    文章目录 求解线性方程 求解非线性方程 求解线性方程 对于固定的线性方程 a 2b 0 4a 5b 0 求 a 与 b 使用如下方法 import scipy optimize as opt import numpy as np def f
  • 【JDK版本常见报错及其解决,Java基础知识点百度云

    J2SE 8 52 J2SE 7 jdk1 7 51 J2SE 6 0 jdk1 6 50 J2SE 5 0 jdk1 5 49 JDK 1 4 48 JDK 1 3 47 JDK 1 2 46 JDK 1 1 45 那怎么办 好办 把项目
  • 【链表】环型链表找环的起点

    力扣 142 环型链表 II 题目 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 1 先确定链表存在环 使用快慢指针法 分别定义 fast 和 slow 指针 从头结点出发 fast 指针每次
  • FFmpeg中的常见结构体

    代码基于FFmpeg5 0 1 目录 FFFormatContext AVFormatContext AVIOContext FFIOContext URLContext URLProtocol AVInputFormat FFStream
  • PAT甲级刷题:模拟(不断更新)

    目录 1001 A B Format 1005 Spell It Right 1035 Password 1061 Dating 18 20 1073 Scientific Notation 16 20 1077 Kuchiguse 17
  • Java 华为真题-猴子爬山

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