【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法
文章目录
- 一、题目描述
- 二、问题分析
- 三、代码分析与逻辑(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级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...
- c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...
- 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...
- 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...
- 一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法?
一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法? 解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一 ...
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...
- 变态跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?
编程题 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 分析 对于n级台阶,第一步的跳法有n种:跳1级.跳2级.跳3级-跳n级 跳1级, ...
最新文章
- linux文件安装DBeaver,[deepin][linux][DBeaver]DBeaver社区版安装好没有图标
- mysql到oracle数据迁移,mysql数据迁移到oracle
- FFMpeg的output_example.c例子分析
- 10-20-010-简介-目录-Kylin目录详解
- async And await异步编程活用基础
- JNI返回复杂对象之中的一个
- 基于 HTML5 的 3D 工业互联网展示方案
- Atitit图片复制父目录给你设计的实现 基于win 图片浏览器
- 【物流选址】基于matlab粒子群算法求解物流选址问题【含Matlab源码 410期】
- Keil uVision4 C51完整版
- 软件定义存储——软件掌控力的试金石
- lwj_C#_集合stack栈和queue队列
- NTSTATUS状态码 详细解说
- C#在VS2019中各种字体颜色的意思
- android dd命令,【测试人员技能】Android shell 下dd命令浅析
- 2015年3月31日通过VMware VCP 认证
- iOS - 内存管理
- 【Ansible】 Ansible 模块 setup 与 stat 模块用法
- 台式计算机打字标准手法,怎样才能练好标准的打字方法?电脑键盘打字指法教学...
- checkbox 点击搜索失去焦点_jquery获取焦点和失去焦点事件代码
热门文章
- wifi认证过程wpa/wpa2
- html椭圆的写法,4.8 把圆变换为椭圆 - HTML5 Canvas 实战
- PS和AE结合设计的进度条,有图有视频(秒懂)
- 纸黄金投资之道――积小胜为大胜(就是别贪)
- 洛谷 P1911 L国的战斗之排兵布阵
- 武汉音乐学院计算机音乐作曲,武汉音乐学院作曲系6部学生作品入围2019年中国大学生计算机设计大赛决赛...
- IDL---批量波段合成(只要点击运行,自动化处理,解放生产力)
- h5物体拖动_iH5高级教程:H5交互进阶,拖动物品效果
- 项目管理知识体系九大知识领域简介
- ftp的20 21端口和主动被动模式