文章目录

  • 一、题目描述
  • 二、问题分析
  • 三、代码分析与逻辑(python3实现)
  • 四、源码及运行结果
  • 总结

提示:以下是本篇文章正文内容:

一、题目描述

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。(若n=0,则有1种)

二、问题分析

1、首先,设一共有f(n)种跳法
2、其次:
①当n=0时,默认有一种跳法,f(0)= 1
②当n=1时,青蛙可以用跳1级台阶的方式跳,一共有1种跳法,f(1) = 1
③当n=2时,青蛙可以用1级跳,或2级跳,一共有2种跳法,f(2) = 1+1=2
.
.
.
④当n=n时,我们可以用倒推的方式来分析问题。青蛙跳上最后一级台阶的方式只有两种情况,要么是1级跳,要么是2级跳。若青蛙用1级跳的方式跳到最后一级台阶,那么它前面跳的方法共有f(n-1)种;若用2级跳,则共有f(n-2)种。所以,两种情况加起来就是总种数:f(n) = f(n-1) + fn (n-2) (n>=2)

⑤所以,种数分为以下几种情况:

综上所述,此函数特征,符合斐波那契数列,即指的是这样一个数列:1、1、2、3、5、8、13、21、34、……从第三个数开始,这个数等于前两个数的和。

三、代码分析与逻辑(python3实现)

1、首先,要定义一个类,目的是将各种功能函数都封装起来,减少代码的冗余,提高程序的运行效率,此处定义Solution类
2、其次,定义一个带参函数,函数名为jumFloor(),参数为n。n代表台阶数。函数里是实现功能的逻辑代码
3、通过上述分析可得,斐波那契数列的前两项都为1,所以定义两个变量x,y且初始化为1,1
4、然后,对台阶数进行for循环遍历,遍历的变量名可以随机,此处用的是i。(此处i仅仅起到辅助遍历范围作用,无需调用)
5、根据斐波那契数列的特征,第三个数等于前两个数之和,就可以用x, y = y, x+y来表示,意思就是每遍历一次,两个数的位置就往后挪一位,之前的x=y,之前的y=x+y,这样就实现了后面的数等于前两个数之和的逻辑
6、最后的返回值应为x,原因如下:

7、定义一个对象s,来调用类
8、通过对象s来调用jumFloor()函数,并在函数参数位置输入台阶数,此时输入的台阶数为10
9、将s.jumFloor(10)的值输出
10、结果应为89

四、源码及运行结果

class Solution:def jumFloor(self,n):x, y = 1, 1for i in range(n):x, y =y, x+yreturn xs = Solution()
s.jumFloor(10)
print(s.jumFloor(10))


总结

1、了解python3语法
2、了解斐波那契数列的特点,以及如何和代码相结合的逻辑

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. linux文件安装DBeaver,[deepin][linux][DBeaver]DBeaver社区版安装好没有图标
  2. mysql到oracle数据迁移,mysql数据迁移到oracle
  3. FFMpeg的output_example.c例子分析
  4. 10-20-010-简介-目录-Kylin目录详解
  5. async And await异步编程活用基础
  6. JNI返回复杂对象之中的一个
  7. 基于 HTML5 的 3D 工业互联网展示方案
  8. Atitit图片复制父目录给你设计的实现 基于win 图片浏览器
  9. 【物流选址】基于matlab粒子群算法求解物流选址问题【含Matlab源码 410期】
  10. Keil uVision4 C51完整版
  11. 软件定义存储——软件掌控力的试金石
  12. lwj_C#_集合stack栈和queue队列
  13. NTSTATUS状态码 详细解说
  14. C#在VS2019中各种字体颜色的意思
  15. android dd命令,【测试人员技能】Android shell 下dd命令浅析
  16. 2015年3月31日通过VMware VCP 认证
  17. iOS - 内存管理
  18. 【Ansible】 Ansible 模块 setup 与 stat 模块用法
  19. 台式计算机打字标准手法,怎样才能练好标准的打字方法?电脑键盘打字指法教学...
  20. checkbox 点击搜索失去焦点_jquery获取焦点和失去焦点事件代码

热门文章

  1. wifi认证过程wpa/wpa2
  2. html椭圆的写法,4.8 把圆变换为椭圆 - HTML5 Canvas 实战
  3. PS和AE结合设计的进度条,有图有视频(秒懂)
  4. 纸黄金投资之道――积小胜为大胜(就是别贪)
  5. 洛谷 P1911 L国的战斗之排兵布阵
  6. 武汉音乐学院计算机音乐作曲,武汉音乐学院作曲系6部学生作品入围2019年中国大学生计算机设计大赛决赛...
  7. IDL---批量波段合成(只要点击运行,自动化处理,解放生产力)
  8. h5物体拖动_iH5高级教程:H5交互进阶,拖动物品效果
  9. 项目管理知识体系九大知识领域简介
  10. ftp的20 21端口和主动被动模式