`
qiemengdao
  • 浏览: 276504 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

也谈走台阶问题

 
阅读更多

问题

刚才在首页看到一篇博客,说的是腾讯的一道面试题:一个楼梯有50个台阶,每一步可以走一个台阶,也可以走两个台阶,请问走完这个楼梯共有多少种方法?博主把这题分析的很麻烦。引来很多人围观。我以前也碰到过这个问题。写出来和大家分享一下。

举个例子,假设有3个台阶,则有三种走法:分别是,1-1-1, 1-2, 2-1。


分析

很简单的一道题,学过组合数学的人很快就能想到,这是一个递推关系。假设走完k个台阶有f(k)种走法。

  • k = 1时,f(k) = 1
  • k = 2时,f(k) = 2
  • k = n时,第一步走一个台阶,剩n-1个台阶,有f(n - 1)种走法。第一步走两个台阶,剩n-2个台阶,有f(n - 2)种走法。所以共有f(n - 1) + f(n - 2)种走法。

于是有如下公式


代码

复制代码
int count(unsigned int n)
{
    if(n == 1)
        return 1 ;
    if(n == 2)
        return 2 ;
    else 
        return count(n - 1) + count(n - 2) ;
}
复制代码


具体是怎么走的呢?

上面只给出了有多少种走法,那么具体每一种走法是怎么走的呢?比如n=4时,五种走法分别如下:

1,1,1,1

1,1,2

1,2,1

2,1,1

2,2

我们用一个整型数组来存放每一步的内容,1表示这步走了一个台阶,2表示这步走了两个台阶。回溯法搞定。代码如下。

复制代码
void count(int n, int t)
{
    if(n < 0)
        return ;
    if (n == 0)
        Output(step, t) ;
    else
    {
        for (int i = 1; i <= 2; ++i)
        {
            step[t] = i ;
            count(n - i, t + 1) ;
        }
    }
}
复制代码


类似的问题

与此题类似的问题有很多,比如铺地砖问题,自然数拆分等。

铺地砖问题

有一个长度为n,宽度为2的地面,有若干块长为2,宽为1的地砖,请问用此地砖铺完这个地面共有多少种方法?

分析一下,假设铺完长度为n的地面有f(n)种方法,如果第一块地砖竖起来铺,还剩下长度为n-1的地面,有f(n-1)种方法。如下图。

如果第一块地转横着铺,那么还剩下长度为n-2的地面,有f(n-2)种铺法。如下图。

所以这道题与上面的题解法完全一样。不同的题目,相同的模型而已。


自然数拆分

给定一个自然数n,将其拆分为若干个自然数字之和,请问有多少种方法?举个例子,n=4时,可以拆分为1-1-1-1,1-1-2,1-3,2-2。

这题和上面的题很像,不过上面的问题是排列问题,而这题是组合问题,比如n=4时,1-1-2,1-2-1,2-1-1这三种只能算一个拆分。在上面的基础上,去掉重复的组合即可。

作者:zdd
出处:http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

分享到:
评论

相关推荐

    浅谈台阶爆破粉矿率的影响因素及控制措施

    针对特殊爆破工程(如构筑海堤工程)中对石料规格要求很高,采取一系列的分析实验研究爆破参数数据,找出台阶爆破控制粉矿率的措施。

    筑好计算机专业的第一级台阶——谈计算机导论课程教学.pdf

    计算机导论课程是计算机专业学生踏入这一领域的启蒙课程,它的重要性在于为学生打下坚实的基础...通过科学的教学设计和实践,这门课程可以成为引领学生攀登计算机科学高峰的第一级台阶,为他们的专业成长奠定坚实基础。

    2018年七年级语文下册第三单元11台阶习题新人教版20180822274

    首先,我们从字词积累部分谈起。通过对诸如"撬开(qiào)"、"磕头(kē)"、"门槛(kǎn)"等词语的拼音和字形的复习,学生们可以更好地掌握汉字的读音和书写规则。例如"烦躁"一词,正确的读音是(fán zào),而"着落"则...

    浅谈机械工程自动化技术存在的问题及措施.doc

    "浅谈机械工程自动化技术存在的问题及措施" 一、机械工程自动化技术的现状 近年来,我国煤矿建成数量快速上升,大中型煤矿超过 1500 处,产能占全国 60 %。2009 年底大中型煤矿的采煤机械化程度已达 93%,工作面...

    例谈促进深度学习的课堂引导策略.pdf

    在提供的文章《例谈促进深度学习的课堂引导策略》中,作者李景芝和张亮亮通过具体的课堂实例,探讨了促进深度学习的若干策略,并强调了教师在这一过程中扮演的角色以及重要性。 深度学习强调在真实复杂的情境中,...

    浅谈对小净距隧道开挖和支护的施工方法.pdf

    此外,临时支护的拆除也要在下台阶完成一定长度后进行。二次衬砌与开挖面的距离同样有严格规定,以免震动影响到已施工部分的稳定。 在施工监测方面,科研工作如爆破震动测试和围岩变形测试是不可或缺的环节。这些...

    从信号处理谈工科数学教学

    ### 从信号处理谈工科数学教学 #### 一、引言 随着信息技术的飞速发展,信号处理作为一门核心的工程技术学科,在电子、通信、计算机等领域扮演着至关重要的角色。信号处理不仅涉及数学理论的应用,更需要深入理解...

    试谈模具主要零部件的结构设计.pptx

    《试谈模具主要零部件的结构设计》的主题集中在模具的核心组件——凸模的结构设计与标准化。凸模在模具中起到切割或成形材料的关键作用,其设计直接影响到模具的性能和使用寿命。 首先,凸模根据结构可分为整体式和...

    初中物理单元复习教学设计中深度学习浅谈--以“欧姆定律”单元复习为例.pdf

    深度学习还需要教师设计合适的问题链,这样的问题链能够帮助学生搭建起解决实际问题的台阶。例如,针对欧姆定律的实验,教师可以设计一系列问题,如“为什么实验无法完成?”、“如何完成实验操作?”等。这样的问题...

    浅谈云大新校区现有园林绿化的规制和设计.doc

    在【地貌】方面,新校区采用规则式的台地设计,利用地形高差形成不同尺度的台阶平台,既保持了自然地貌的特点,又增强了景观的可驻留性。同时,通过直线元素的运用,如阶梯状的台地,体现出规整之美。 【水体】设计...

    浅谈复杂环境下大规模深孔控制爆破施工技术

    包括主体台阶高度、钻孔直径、布孔方式、底盘抵抗线、钻孔超深、炮孔深度、堵塞长度、装药长度、孔间距、排间距和单孔药量等。合理的爆破参数能够有效控制爆破震动速度,降低爆破对周围环境的破坏。 其次,控制飞石...

    浅谈旧路改造工程的施工组织和质量控制.docx

    为防治这些问题,关键在于加强地基处理,彻底清理表层植物土,预防形成薄弱滑动面,同时确保新老路基结合处的台阶设置合理,必要时采用土工材料增强稳定性。 对于新老路基的不均匀沉降,应关注原有路基的固结和变形...

    浅谈四足机器人的发展历史、现状与未来.pdf

    Spot采用电液混合驱动,减轻了运动噪声,并能够实现静态行走、对角小跑等步态,还具备在野外环境下稳定行走、上斜坡、上台阶以及在受到侧向推力时自主恢复平衡的能力。SpotMini重量更轻,完全采用电机驱动,运动更为...

    浅谈如何学好数控编程与加工.docx

    例如,以数控车工在加工接头时遇到的问题为例,锥螺纹孔口出现的小台阶和内孔交接处的翻边毛刺,这些问题通常与工艺路线选择不当和刀具磨损有关。解决这些问题需要从调整起刀点位置和改进退刀方式入手,这样才能保证...

    浅谈医院信息化网络的升级改造.docx

    管理不善也是不容忽视的问题。医院内的IP地址分配通常比较混乱,网络故障的排查和定位异常困难,这无疑增加了IT管理的成本,降低了工作效率。管理上的疏漏,使得医院难以快速响应网络突发事件,对医疗业务的正常运行...

    浅谈枢纽闸站工程混凝土施工技术的要点下载工程-2页.pdf

    标题中的“浅谈枢纽闸站工程混凝土施工技术的要点”是指在建设水利工程中,特别是枢纽闸站这样的关键设施,混凝土施工是一项至关重要的环节。混凝土施工技术不仅关乎工程的整体质量和耐久性,还直接影响到工程的安全...

    浅谈机器人技术装备与铁路企业的融合发展.pdf

    本文将浅谈机器人技术装备在铁路企业的融合发展,并展望未来趋势。 在技术层面,机器人技术装备集成了人工智能、云计算、大数据、物联网等新兴信息技术,使得智能系统得以应用于铁路运营的各个环节。这些技术装备...

    专家谈坡地别墅区的规划与建筑设计.docx

    这不仅强化了居民的领域感,也提升了社区的整体品质。 4. **生态环境保护**:在重庆棕榈泉国际花园的案例中,充分考虑了基地内的湖泊、生态公园等自然资源,将它们融入规划设计中,旨在创造一个高品质的生态居住...

    试谈装饰工程预算误区.doc

    3. 块料面层、木地板等的计算:门窗洞口的地面面积容易被漏算,踢脚线的长度计算也常有误差,如减去了门窗洞口的长度,而忽略了侧面踢脚线。 4. 土壤使用:地面灰土垫层中的素土通常采用现场土,但在特殊情况下需...

Global site tag (gtag.js) - Google Analytics