`

楼梯问题

阅读更多

hl给我的几道某公司的算法题:

1、
有个 100 级的楼梯,你可以每次跨 1级或2级,问跨到100级总共有多少种跨法。

 这个题目很容易写出递推式f(n) = f(n-1) + f(n-2),这个其实就是标准的斐波那契数列

使用自底向上的递推的动态规划算法来避免重复计算:

int fib(int n){

   int f0 = 1,f1 = 1;

   int i;

   for(i = 2; i < n; i++)

   	f2 = f0 + f1;

        f0 = f1;

	f1 = f2;

   }

   return f1;

}

 扩展一下也就是每次跨N1,N2,...Nk个台阶的跨法:

这个递推式:

f(n) = f(n-N1) + f(n-N2) + ... + f(n-Nk)

算法也很好写了,用一下从底往上推和记事本的动态规划方法代码分别如下:(待续)

 

分享到:
评论

相关推荐

    小学三年级奥数题第3课《上楼梯问题》试题附答案.docx

    《上楼梯问题》是小学三年级奥数课程中的一个重要知识点,主要涉及到的是逻辑推理和简单的加减运算。在解决这类问题时,孩子们需要理解并运用基本的数量关系,通过观察和分析来找出解决问题的方法。以下是对这一知识...

    小学三年级数学思维训练上楼梯问题.doc

    【小学三年级数学思维训练——上楼梯问题】 上楼梯问题是一种典型的数学思维训练题目,它旨在培养学生的逻辑思维和解决问题的能力。此类问题的核心在于理解“上楼梯”的本质:每次上楼实际上是在跨越楼梯层数,而...

    基础算法-python爬楼梯问题

    python爬楼梯问题假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶...

    动态规划算法入门指南:从斐波那契数列到爬楼梯问题

    ### 动态规划算法入门指南:从斐波那契数列到爬楼梯问题 #### 一、动态规划算法概述 动态规划(Dynamic Programming,简称DP)是一种强大的算法思想和技术,常用于解决各种优化问题,例如寻找最优解或最大化/最小...

    小学数学上楼梯问题专项提升.pdf

    在小学数学的学习中,上楼梯问题是一个典型的数学应用题型,它主要涉及到数列、计数和逻辑推理等基础知识。这类问题通常会引导学生理解并运用“两端植树问题”的概念,即在两端都要植树的情况下,植树的数量比间隔数...

    小学三年级数学思维训练(上楼梯问题).doc

    这些题目和示例都是关于数学思维训练中的“上楼梯问题”及其变式,它们主要考察的是逻辑推理和问题解决能力。此类问题的核心在于理解“上楼梯”不是按层数计算,而是按步数或者次数来计数。下面分别对各个例子进行...

    python程序设计 小孩爬楼梯问题

    小孩爬楼梯问题从地面算起,每次可选择1,2,3阶

    爬楼梯问题 C#版本源码

    //楼梯共有n级台阶。小明每一步最少爬1级台阶,最多能爬m级台阶。 //例如,楼梯有3级台阶,小明每一步可以爬1级、2级或3级,则小明一共有4种爬法。 //如果n的取值从32~36,m的取值从2~3,请写程序输出每种情况下...

    小明上楼梯问题C++解决

    小明上楼梯问题C++解决

    小学二年级数学下册混合运算、应用题及植树、爬楼梯问题.doc

    小学二年级数学下册混合运算、应用题及植树、爬楼梯问题是小学数学教育的重要组成部分,旨在帮助学生理解和掌握基本的算术操作,并将其应用于实际问题中。混合运算是指在一个数学表达式中同时包含加法、减法、乘法和...

    上楼梯问题

    解决上楼梯问题,输入楼梯个数N,一步可走一级、两级、三级,输出共有多少种走法

    Python走楼梯问题解决方法示例

    本文实例讲述了Python走楼梯问题解决方法。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #!python3 ''' 下楼问题。从楼上走到楼下共有h个台阶,每一步有两种走法: 走1个台阶,走2个台阶,问有多少可...

    斐波那契数列 爬楼梯问题 python & php版

    爬楼梯问题 假设你正在爬楼梯, 需要 n 阶你才能到达楼顶 每次你可以爬 1 或 2 个台阶, 你有多少种不同的方法可以爬到楼顶呢? 设爬 n 个台阶有 f(n) 种可能 假设先爬1阶, 剩下 n-1 阶有 f(n-1) 种可能 假设先爬2阶, ...

    Python使用回溯法子集树模板解决爬楼梯问题示例

    爬楼梯问题是一个典型的动态规划问题,也可以通过回溯法解决。问题描述是:有一座楼梯,有n级台阶,每次可以迈1级或2级台阶,求从地面到达楼梯顶部有多少种不同的走法。 在使用回溯法解决这个问题时,我们首先定义...

    小学三年级数学上册奥数知识点讲解第3课《上楼梯问题》试题附答案.pdf

    小学三年级数学上册奥数知识点讲解第3课《上楼梯问题》试题附答案.pdf

    下楼梯问题程序

    15:46 2013/1/8#include&lt;iostream.h&gt; // 定义全局变量:数组take,方案数... cout 请输入楼梯台阶数:"; cin &gt;&gt; n; // 输入楼梯的台阶数 Try(n,1); // 从第n级,开始下第一步 cout 总方案数:" ; return 0; }

    使用python爬楼梯问题

    对于动态规划算法的经典问题中,找到爬到楼梯顶层的方法有多少种事一个比较基础也是比较经典的一个一维动态规划问题。问题的主要描述为,假如要爬一个n层的楼梯,每次只能走一个或者两个楼梯,总共有多少种方法可以...

    爬楼梯_M?n_爬楼梯_

    爬楼梯问题:有n阶楼梯,允许一步跨1阶、2阶或3阶,试问用m步正好走完楼梯的情况有多少种?给出所有可能情况的具体结果。举例:n=6,m=3,用3步正好走完6阶楼梯的情况有7种,分别为1-2-3,1-3-2,2-1-3,2-2-2,2-3-...

    机器人走步问题或者爬楼梯问题

    机器人每步走1米或2米,罗列出走n米的方法(方法有fibonacci(n+1)个) 或者爬楼,每次1个台阶或2个台阶,罗列出走n个台阶的方法。 这里使用栈来解决,算法复杂度为O(fibonacci(n))

Global site tag (gtag.js) - Google Analytics