题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.

青蛙每一次跳跃只有两种选择:一是再跳1级阶梯到达第n级阶梯,此时小青蛙处于第n-1级阶梯;或者再跳2级阶梯到达第n级阶梯,此时小青蛙处于n-2级阶梯

于是,n级阶梯的跳法总是依赖于前n-1级阶梯的跳法总数f(n-1)和前n-2级阶梯的跳法总数f(n-2).因为只有两种可能性,所以,f(n)=f(n-1)+f(n-2);

递推公式f(n)=f(n-1)+f(n-2):很熟悉,就是斐波那契数列求和

验证一下,青蛙1级有1种跳法,2级有2种跳法,3级有3种跳法,4级有5种跳法....

使用两种方式来求,递归算法和非递归算法

代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Jump
{class Program{static void Main(string[] args){for (int n = 0; n < 20; n++){int result1 = JumpFloor1(n);int result2 = JumpFloor2(n);Console.WriteLine(result1 + "********" + result2);}Console.ReadKey();}/// <summary>/// 递归算法/// 缺点:太占空间,效率低下,计算到n时,总要依赖前一个n-1再算一遍/// </summary>/// <param name="n"></param>/// <returns></returns>static int JumpFloor1(int n){if (n < 0){return 0;}else if (n == 0 || n == 1 || n == 2){return n;}return JumpFloor1(n - 1) + JumpFloor1(n - 2);}/// <summary>/// 非递归算法/// 时间复杂度O(n)/// 空间复杂度O(1)/// </summary>/// <param name="n"></param>/// <returns></returns>static int JumpFloor2(int n){if (n < 0){return 0;}if (n == 0 || n == 1 || n == 2){return n;}int f1 = 1;int f2 = 2;int result = 0;for (int i = 3; i <= n; i++){result = f1 + f2;f1 = f2;f2 = result;}return result;}}
}

算法:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.相关推荐

  1. [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...

  2. 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法

    文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...

  3. c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...

  4. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...

  5. 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...

  6. 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...

  7. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...

  8. 一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法?

    一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法? 解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一 ...

  9. (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...

  10. 变态跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?

    编程题 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 分析 对于n级台阶,第一步的跳法有n种:跳1级.跳2级.跳3级-跳n级 跳1级, ...

最新文章

  1. repo入门和基本用法
  2. Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /常见异常
  3. KVM 虚拟化架构和实现原理
  4. Linux中 set、env、declare、export显示shell变量的区别
  5. staruml顺序图生成协作图_一个工具箱 之 南丁格尔玫瑰图生成器
  6. 利用ABAP 740的新关键字REDUCE完成一个实际工作任务
  7. Tips--Ubuntu16.04系统安装时无法连接WiFi
  8. java exchangedeclare_Exchange服务器之RabbitMQ四种Exchange类型之Topic (Java)
  9. Awvs14下载与安装
  10. 家庭网络布线图与布线方案
  11. 读《反欺骗的艺术》有感
  12. ryuyan 方差分析_R语言之方差分析篇
  13. HTML5CSS3知识点总结(1)
  14. input onfocus onblur
  15. 机器翻译系统,主要划分为哪几大类型?
  16. LXC的Python学习笔记
  17. 【YOLACT】测试自己数据集
  18. 【战神引擎】一键打开所有修改路径快捷方式
  19. 微信三级分销系统介绍
  20. 上行OFDMA接入机制(UL-OFDMA)

热门文章

  1. 【微信公众号开发】四、公众号按钮设置及自己的微信按钮编辑器
  2. AI拟声: 5秒内克隆您的声音并生成任意语音内容
  3. 美团笔试题 淘汰分数
  4. 春节钱包大流量奖励系统入账及展示的设计与实现
  5. 电脑显示屏只显示中间部分其他地方不显示问题
  6. 安装Visio失败提示安装即点即用版本 利用office部署工具安装visio2016
  7. 修改UA在PC中访问只能在微信中打开的链接
  8. ATF:Gicv源码文件系列-gicv2.mk
  9. caffe的使用方法
  10. linux下分区ntfs,简易教程:Linux下NTFS分区的写操作