【python】爬楼梯—递归分析(超级详细)

news2024/11/22 21:51:53

爬楼梯—递归分析

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。

示例 1:
输入: 1
输出: 1
解释: 有一种方法可以爬到楼顶。
方法1:1 阶

示例 2:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
方法1:1 阶 + 1 阶
方法2:2 阶


继续向后分析,我们会得到:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
方法1:1 阶 + 1 阶 + 1 阶
方法2:1 阶 + 2 阶
方法3:2 阶 + zh1 阶

输入: 4
输出: 5
解释: 有5种方法可以爬到楼顶。
方法1:1 阶 + 1 阶 + 1 阶 + 1 阶
方法2:1 阶 + 1 阶 + 2 阶
方法3:1 阶 + 2 阶 + 1 阶
方法4:2 阶 + 1 阶 + 1 阶
方法5:2 阶 + 2 阶

输入: 5
输出: 8
解释: 有5种方法可以爬到楼顶。
方法1:1 阶 + 1 阶 + 1 阶 + 1 阶 + 1 阶
方法2:1 阶 + 1 阶 + 1 阶 + 2 阶
方法3:1 阶 + 1 阶 + 2 阶 + 1 阶
方法4:1 阶 + 2 阶 + 1 阶 + 1 阶
方法5:1 阶 + 2 阶 + 2 阶
方法6:2 阶 + 1 阶 + 1 阶 + 1 阶
方法7:2 阶 + 1 阶 + 2 阶
方法8:2 阶 + 2阶 + 1 阶

总结一下上述的内容:

当1层楼梯时,有1种方法,表示为:f(1) = 1
当2层楼梯时,有2种方法,表示为:f(2) = 2
当3层楼梯时,有3种方法,表示为:f(3) = f(2) + f(1) = 3
当4层楼梯时,有5种方法,表示为:f(4) = f(3) + f(2) = 5
当5层楼梯时,有8种方法,表示为:f(5) = f(4) + f(3) = 8
…(以此类推)
当n层楼梯时,有f(n)种方法,表示为:f(n) = f(n-1) + f(n-2) = ?

python代码如下:

def digui(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    return digui(n - 1) + digui(n - 2)

print(digui(5))

运行结果:

8

流程图思路分析:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/786019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT和MBR的区别

磁盘分区是操作系统管理磁盘数据的一项非常重要的功能。在分区时,用户需要选择一种分区表格式来组织磁盘上的分区,这也就是GPT和MBR两种分区表格式的由来。在本文中,将详细探讨GPT和MBR分区表格式的区别和如何选择它们。 1. MBR和GPT分区表格…

electron-egg 加密报错

electron框架:electron-egg 解决方式 npm uninstall bytenode npm install bytenode1.3.6node:internal/modules/cjs/loader:928 throw err; ^ Error: Cannot find module ‘node:assert/strict’ Require stack: D:\electron-egg-test\new-electron-egg\electr…

勘探开发人工智能技术:断层识别

1 断层识别 断层是地下岩层在受到挤压或拉伸力作用下,因脆性变形而形成的地层错断,是一种重要的地质构造特征。断层检测和解释是从地震剖面中认识岩层结构和储层特性的重要步骤。 1.1 数据描述 合成地震数据: 每一个合成地震数据都是由地质模型的反射系数与雷克子波进行褶…

Vite 4.4 正式版发布,全面拥抱 Lightning CSS

一、什么是 Vite Vite 是由 Evan You 推出的下一代前端构建工具,是官方 Vue CLI 的替代品,速度非常快。Vite 利用原生 ESM 并使用 Rollup 处理开发和打包工作。 从功能上讲,它的工作方式类似于预配置的 webpack 和 webpack-dev-server&#…

软考_软件设计师(中级)

视频链接:(zst_2001) https://www.bilibili.com/read/cv18526892?spm_id_from333.999.0.0 文章目录 1、计算机系统2、程序设计语言3、知识产权4、数据库5、面向对象6、UML7、设计模式8、操作系统9、结构化开发10、软件工程11、信息安全&…

【MCU学习】RTthread工程介绍

RT-Thread架构 RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread把面…

Ubuntu18.04安装Autoware1.15(解决Openplanner无法绕障的问题:Openplanner2.5)

文章目录 一、下载Autoware1.15源码二、安装依赖三、修改CUDA版本四、编译以及报错解决编译(1)报 undefined reference to cv::Mat::Mat() 的错就按照下面方式改相应包:(2)遇到报错:(3&#xff…

opencv-20 深入理解HSV 色彩空间(通过指定,标记颜色等来拓展ROI区域)

RGB 色彩空间是一种被广泛接受的色彩空间,但是该色彩空间过于抽象,我们不能够直接通过其值感知具体的色彩。 我们更习惯使用直观的方式来感知颜色,HSV 色彩空间提供了这样 的方式。 通过 HSV色彩空间,我们能够更加方便地通过色调、…

web APIs-练习一

轮播图点击切换&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"…

Servlet——使用Servlet编程的基本流程。

文章目录 前言一、创建项目创建Maven项目介绍Maven项目 二、引入依赖三、创建目录四、编写代码五、打包六、部署七、验证总结 前言 本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话&#xff0c;互关一下&#xff0c;…

软件测试面试题及答案【史上最全】

以下是软件测试相关的面试题及答案&#xff0c;欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&…

微信小程序开发使用echarts报错Cannot read property ‘getAttribute‘ of undefined

如图&#xff0c;我在小程序圈中的区域渲染echarts图标报错了&#xff0c;报错提示Cannot read property getAttribute of undefined 这里的canvas &#xff0c;width ,height,dpr获取为 undefined 分析问题&#xff1a; 初始化图表时传递错误的参数&#xff1a; 在 onShow 生…

靶向RNA-seq全面解决方案和加速分析,只看这篇就够了!

背景 RNA-seq&#xff0c;即通过高通量测序技术进行的转录组测序分析技术。最初作为研究mRNA&#xff0c;small RNA&#xff0c;non-coding RNA 等表达水平、表达差异基因的应用&#xff0c;在过去的十几年内迅速发展。而今&#xff0c; RNA-seq 在转录本变异、基因融合、可变…

安全文件传输:如何降低数据丢失的风险

在当今数字化时代&#xff0c;文件传输是必不可少的一项工作。但是&#xff0c;数据丢失一直是一个令人头疼的问题。本文将探讨一些减少数据丢失风险的方法&#xff0c;包括加密、备份和使用可信的传输协议等。采取这些措施将有助于保护数据免受意外丢失的危险。 一、加密保护数…

抖音矩阵系统源码开发搭建部署分享

一、 功能开发设计 &#xff08;1&#xff09;数据概览&#xff1a;账号&#xff0c;视频top10数据统计 &#xff08;2&#xff09;AI视频创意&#xff1a;原创视频批量剪辑&#xff0c;阶乘算法&#xff0c;去重原理 &#xff08;3&#xff09;同城拓客&#xff1a;线下门店…

整体认识和路由配置、基础数据渲染、热榜区域实现、图片预览组件封装、认识SKU组件、通用组件统一注册全局(详情页)【Vue3】

详情页 整体认识和路由配置 整体业务认识 路由配置 准备组件模板 <script setup></script><template><div class"xtx-goods-page"><div class"container"><div class"bread-container"><el-breadc…

nlp系列(6)文本实体识别(Bi-LSTM+CRF)pytorch

模型介绍 LSTM&#xff1a;长短期记忆网络&#xff08;Long-short-term-memory&#xff09;,能够记住长句子的前后信息&#xff0c;解决了RNN的问题&#xff08;时间间隔较大时&#xff0c;网络对前面的信息会遗忘&#xff0c;从而出现梯度消失问题&#xff0c;会形成长期依赖…

Linux文件管理

WINDOWS/LINUX目录对比 Windows: 以多根的方式组织文件 C:\ D:\ E: Linux: 以单根的方式组织文件 / (根目录) Linux目录简介 /目录结构&#xff1a; FSH (Filesystem Hierarchy Standard) [rootlocalhost ~]# ls / bin dev lib media net root srv usr boot etc lib64 misc …

Qt5.14.2下载及安装

1. 下载 https://download.qt.io/archive/qt/5.14/5.14.2/ 由于Qt 自从5.15版本开始&#xff0c;对非商业版本&#xff08;也就是开源版本&#xff09;&#xff0c;不提供已经制作好的离线exe安装包。所以&#xff0c;对于5.15&#xff08;含&#xff09;之后的版本&#xff…

混合背包--暗黑游戏(pgrune)

混合背包&#xff1a;包含着01背包&#xff0c;完全背包,多重背包 而这个题通过k[i]进行判断是哪个背包&#xff0c;少了个完全背包。 #include<bits/stdc.h> using namespace std; const int N1000; int vp[N]; int vr[N]; int k[N]; int w[N]; int f[151][151]; int m…