题目7:猴子跳台阶 1级和3级

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

输入描述:
输入只有一个这个数n 0<n<50
此阶梯有多个台阶
输出描述:
有多少种跳跃方式

实例:
输入
50
输出
122106097

输入
3
输出
2

知识点:

  • 动态规划:斐波那契数列

  • 递归

同题型

https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/

找规律

公式:F(n) = F(n−1)+F(n−3)

n=0,f(0)=0
n=1,f(1)=1
[[1]]
n=2,f(2)=1
[[1,1]]
n=3,f(3)=2
[[1,1,1],[3]]
n=4,f(4)=f(3)+f(1)=3
[[1,1,1,1],[1,3],[3,1]]
n=5,f(5)=f(4)+f(2)=4
[[1,1,1,1,1],[3,1,1],[1,3,1],[1,1,3]]
n=6,f(6)=f(5)+f(3)=6
[[1,1,1,1,1,1],[3,1,1,1],[1,3,1,1],[1,1,3,1],[1,1,1,3],[3,3]]

    public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();System.out.println(fun(n));}private static int fun(int n) {if (n == 1 || n == 2) {return 1;}if (n == 3) {return 2;}int sum = 0;if (n > 3) {sum = fun(n - 1) + fun(n - 3);}return sum;}

题目7:猴子跳台阶 1级和3级相关推荐

  1. 九度_题目1388:跳台阶

    //跟斐波那契数列是一个性质的,先将数列求出来会更节省时间 1 秒内存限制:32 兆特殊判题:否提交:2662解决:1099 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个 ...

  2. 商汤科技自动驾驶研究员2019校招笔试第一题-跳台阶(每次可跳1~m级,跳到第n级的跳法总数)

    递推公式如下: n<=m时 v[n]=2<<(n-2) n>m时 v[n]=2*v[n-1]-v[n-1-m] 输入n超过10^18,考虑是维护一个供迭代的双向队列做动态规划, ...

  3. 剑指offer:面试题10- II. 青蛙跳台阶问题

    题目:青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:10000 ...

  4. 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------剑指offer系列

    题目:斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). f(n) = f(n-1) + f(n-2) 基本思路 这道题在剑指offe ...

  5. 剑指Offer #08 跳台阶(递推)

    题目来源:牛客网-剑指Offer专题 题目地址:跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 题目解析 这是 ...

  6. 【剑指offer - C++/Java】8、跳台阶

    在线题目链接:跳台阶 文章目录 1.题目描述 2.题目分析 3.代码 3.1 递归方法 3.11 Java代码 3.12 C++代码 3.2 动态规划 3.21 Java代码 3.22 C++代码 3 ...

  7. python青蛙跳台阶_Python算法题(一)——青蛙跳台阶

    题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...

  8. python比赛积分类算法题_Python算法题(一)——青蛙跳台阶

    题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...

  9. 青蛙跳台阶和变态跳台阶

    青蛙跳台阶和变态跳台阶(python.剑指Offer) 一.题目描述 青蛙跳台阶题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的 ...

最新文章

  1. hdu 3308 LCIS 线段树 + 区间合并
  2. 怎么在同一页中分页_分库分表业界难题,跨库分页的几种常见方案
  3. 评审专家:基金本子“瘦”点好
  4. java背景图片加上组件_关于 java swing组件加背景图片的问题
  5. 计算机辅助设计的发展及应用,计算机辅助设计的发展与应用
  6. 【Java】《Java面向对象编程的三大特性》阅读笔记
  7. Go Web编程--应用ORM
  8. BIM工程信息管理新系统- 系统管理模块
  9. python爬虫知识点总结(三)urllib库详解
  10. 代写R语言assignment经常用到的代码语法分享!
  11. ORA29902执行ODCIIndexStart()例行程序中出错 SQL空间查询ST_Geometry配置
  12. 贵州省中职学校计算机教材电子版,中职计算机基础课件贵州省中职学校计算机应用基础教学工作计划.doc...
  13. PSP看电视软件测试,实战测试:PSP上运行Windows 95
  14. 【UWB定位】 - DWM1000模块调试简单心得 - 3
  15. 【财政决策支持系统DSS】财政支出OLAP分析模型参考【财政数据仓库DW】
  16. 利用LSB算法隐藏图片信息的MATLAB实现
  17. 解决TypeError: conv2d() received an invalid combination of arguments
  18. 如何实现广告图片总是显示在页面上方,并且随滚动条同步移动?
  19. _kbhit()以及_getch()函数的用法
  20. 移动通信各制式、调制的速率及频谱利用率(2G-4G)

热门文章

  1. POJ 3842 An Industrial Spy 快筛质数+STL乱搞
  2. 微前端——single-spa源码学习
  3. 举个栗子~Tableau 技巧(209):用自定义形状实现刻度环形图
  4. 鲁大师5月新机性能榜:红魔6R夺冠,“特供版”新机密集
  5. Java 开发者如何入门 Node.js 英文原文:Getting Started with Node.js for the Java Developer
  6. 简单聊一聊UseCompressedOops UseCompressedClassPointers这两个JVM参数
  7. 群晖消息通知 推送服务器,群晖点滴我知道 篇一:群晖 如何设置微信通知
  8. Halcon 第三章『Morphology形态学』◆第3节:顶帽运算与底帽运算
  9. 苹果市场占有率_为什么买了苹果电脑,却要安装Windows系统
  10. 关于Spring Cloud:Mapper<>中的泛型红线:Type ‘org.apache.ibatis.annotations.Mapper‘ does not have type paramet