Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小明爬楼梯

小明爬楼梯

作者头像
砖业洋__
发布于 2023-05-06 08:35:24
发布于 2023-05-06 08:35:24
19700
代码可运行
举报
文章被收录于专栏:博客迁移同步博客迁移同步
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <iomanip>
using namespace std;
/*可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,
有的时候一次爬两个台阶,有的时候一次爬三个台阶。
如果这个楼梯有36个台阶,小明一共有多少种爬法呢?*/

//n层台阶,走一步剩下n-1层台阶,有n-1层台阶它自己那么多种走法,即有f(n-1)种走法
//n层台阶,走两步剩下n-2层台阶,有n-2层台阶它自己那么多种走法,即有f(n-2)种走法 
//n层台阶,走两步剩下n-3层台阶,有n-3层台阶它自己那么多种走法,即有f(n-3)种走法 
//递归,第一步有三种走法,第二步进入第一层递归,然后又是第一步,。。。剩下有对应自己的走法 

//循环版本

double Fibonacci(int n)
{
	double y = 0.0, f1 = 1.0, f2 = 2.0, f3 = 4.0;
	if (n > 0)
	{
		switch (n)
		{
		case 1:
			y = f1;
			break;
		case 2:
			y = f2;
			break;
		case 3:
			y = f3;
			break;
		default:
			for (int i = 4; i <= n; ++i)
			{
				y = f1 + f2 + f3;
				f1 = f2;
				f2 = f3;
				f3 = y;
			}
		}
	}
	return y;
}



/*
//递归版本(坏方法),也可以用动态规划存起来,但还是没有循环快
double Fibonacci(int n)
{
	double y;
	if (n > 0)
	{
		if (1 == n)
		{
			y = 1;//一个台阶只有一种走法
		}
		else if (2 == n)
		{
			y = 2;//两个台阶有2种走法,1、1;2 
		}
		else if (3 == n)
		{
			y = 4;//三个台阶有4种走法,1、1、1;1,2;2,1;3 
		}
		else
		{
			y = Fibonacci(n - 1) + Fibonacci(n - 2) + Fibonacci(n - 3);
		}
		return y;
	}
}*/

int main()
{
	int n;
	double y;
	cin >> n;
	y = Fibonacci(n);
	cout << setprecision(20) << y << endl;
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​LeetCode刷题实战70:爬楼梯
https://leetcode-cn.com/problems/climbing-stairs/
程序员小猿
2021/01/20
2370
​LeetCode刷题实战70:爬楼梯
LintCode 爬楼梯题目分析代码小结
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
desperate633
2018/08/22
3300
LintCode 爬楼梯题目分析代码小结
【小Y学算法】⚡️每日LeetCode打卡⚡️——22.爬楼梯
????前言 ????原题样例 ????C#方法:动态规划 ????Java 方法一:动态规划 ????Java 方法二:矩阵快速幂 ????总结 ????往期优质文章分享 ????前言 ???? 每
呆呆敲代码的小Y
2021/09/07
2050
LeetCode-70-爬楼梯
当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=2
benym
2022/07/14
1850
爬楼梯
题意 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样例 n=1 方法只有一种就是1 n=2 1+1 或者 2 两种方法 n=3 1+1+1 或者 1+2 或者 2+1 三种方法 ….. 思路 逆向思维,例如 n = 4 ,那么他走的最后一步就只能是 1步 或者 2步, 如果最后走的是1级台阶,那么之前走的就是3级台阶, 如果之前走的是2级台阶,那么之前走的就是2级台阶, 于是得到4阶台阶的走法就是3阶台阶的走法加上2阶台阶的走法。也就是3 +
一份执着✘
2018/06/04
7100
算法-数组-爬楼梯
链接: https://leetcode.cn/problems/climbing-stairs/
用户3578099
2022/06/10
3470
解答牛顿爬楼梯问题
今天面试遇到了这个题,脑子轴了一下, 没有答上来, 事后想了想, 其实也是蛮简单的问题 牛顿爬楼梯.png 爬楼梯一次只能迈一节或二节台阶. 假设一共N节台阶. 那么一共有多少种方法
zhaoolee
2018/04/19
9030
解答牛顿爬楼梯问题
LeetCode 70. 爬楼梯
文章目录 题目 推导归纳-斐波那契 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 4. 1 阶 + 1 阶 + 1 阶 5. 1 阶 + 2 阶 6. 2 阶 + 1 阶 来源:力扣(LeetCode) 链
诡途
2022/05/09
1980
爬楼梯问题详解
说到动态规划啊,很多人都觉得是一生之敌。繁琐,耗脑子,变化多,有许多细节,不想看,不想懂。对我们这些不是专门研究算法的人来说,确实不容易把握住动态规划的所有细节。那,常见的题型我们还是可以摊开来分析分析的嘛。正好今天做题做到了爬楼梯的题目,那我们就借此来说道说道。
写代码的阿宗
2020/08/24
1.1K0
爬楼梯问题详解
爬楼梯
爬楼梯 递归解法 递归解法的关键在于要找到函数恒等式,即推导公式f(n)=f(n-1)+f(n-2) class Solution { public: int climbStairs(int n) { //注意:这里终止条件有两个 if(n==1) return 1; if(n==2) return 2; //3.本级递归干什么:计算当前层的爬法总数 int ret=climbStairs(n-1)+climbStairs(n
大忽悠爱学习
2022/05/05
3090
爬楼梯
「数据结构与算法」力扣实战之移动零、盛最多的水、爬楼梯
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
三钻
2020/10/29
5150
「数据结构与算法」力扣实战之移动零、盛最多的水、爬楼梯
LeetCode 70. 爬楼梯(动态规划)
题目链接:https://leetcode-cn.com/problems/climbing-stairs/
Michael阿明
2021/02/20
3050
LeetCode 70. 爬楼梯(动态规划)
爬楼梯
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数, 求不同的走法数 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一 级,第二次走两级,也可以第一次走两级,第二次走一级,一 共3种方法。 输入 输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30输出不同的走法数,每一行输入对应一行 爬楼梯 输出 不同的走法数,每一行输入对应一行输出 样例输入 5 8 10 样例输出 8 34 89
AI那点小事
2020/04/20
4670
力扣刷题之爬楼梯(7/30)
这道题的要求的话是很清晰的,也就是我们一步楼梯可以有两种走法,就是一次一层还有就是一次两层。上一层的当然只有一种,然后上两层的话有两种,就是一步一步,或者一次性走两层。上三层的话的方法就是走一层和走两层的方法的和。这个只体现的方法的数量上。
兰舟千帆
2022/08/03
3760
力扣刷题之爬楼梯(7/30)
算法简单题,吾辈重拳出击 - 爬楼梯的最少成本
这题目读完有一种将动态规划 DP(做比较得最大值或最小值)和 爬楼梯斐波那契结合的感觉。
掘金安东尼
2022/08/22
3980
算法简单题,吾辈重拳出击 - 爬楼梯的最少成本
LeetCode,Go实现爬楼梯算法
LeetCode题目源地址:https://leetcode-cn.com/problems/climbing-stairs/
微客鸟窝
2021/08/18
4010
LeetCode,Go实现爬楼梯算法
《JavaSE-习题篇二》之七个题目,十六张图,让你不惧递归。
学习方法后,我们来学习一种特殊调用方法的方式,即递归。本篇文章将介绍什么是递归,以及递归的使用规则和注意事项,最后通过几道经典的题目来加深对递归的理解。
用户10517932
2023/10/07
2270
《JavaSE-习题篇二》之七个题目,十六张图,让你不惧递归。
【LeetCode热题100】【动态规划】爬楼梯
就是个斐波那契数列,达到第三个台阶的跳法可以从第一个台阶直接跳两步或者是从第二个台阶跳一步,因此对于第n个台阶来说,可以从第n-2个台阶跳两步到达,也可以从第n-1个台阶到达,因此跳到第n个台阶的跳法等于前两个台阶的跳法之和
叶茂林
2024/04/07
1110
【动态规划篇】746.使用最小花费爬楼梯
题目链接: 746.使用最小花费爬楼梯 题目叙述: 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
_孙同学
2025/03/15
670
【动态规划篇】746.使用最小花费爬楼梯
DP-LeetCode-70. 爬楼梯
f[n] = f[n-1] + f[n-2]如何理解? 爬楼梯一次可以一阶或者两阶,爬到第n层台阶有多少种方案。 逆向思考,当现在处于第n阶台阶,从哪里可以到这里呢? 从n-1阶台阶爬一层到这里或者从n-2阶台阶爬两层到这里,也就爬到第n的方案数是爬到第n-1阶台阶的方案数与爬到第n-2阶台阶的方案数之和,加法原理。
lexingsen
2022/02/24
1900
相关推荐
​LeetCode刷题实战70:爬楼梯
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验