一道经典面试题,爬楼梯的方式有几种?


# 爬楼梯问题,有n阶楼梯,每一步可以爬一个台阶或者2个台阶,总的爬法数?
# 这是一个比较经典的问题哦
"""
例如1个台阶,1种爬法1;f(1)=1

例如2个台阶,2种爬法1+1,2;f(2)=2

例如3个台阶,3种爬法1+1+1,2+1,1+2;f(3)=f(2)+f(1)

例如4个台阶,5种爬法1+1+1+1,2+1+1,1+2+1,1+1+2,2+2;f(4)=f(3)+f(2)

......
例如n个台阶,爬法f(n)f(n-1)+f(n-2)
"""


#   //循环算法
def UpStairFor(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    result = 0
    p = 2
    pp = 1
    for i in range(2, n):
        result = p + pp
        pp = p
        p = result
    return result


# 递归算法
def f(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    return f(n - 1) + f(n - 2)


for i in range(1, 20):
    print("循环上楼的方式有", UpStairFor(i), "种")
    print("递归方式上楼的方式有", f(i), "种")

    # https: // www.cnblogs.com / zhangdezhang / p / 16341789.html  可以参考这里哦!

这个一个比较经典的笔试题哦,遇到过几次了,还是始终不理解,现在根据上面的方式感觉豁然需要了哦!

一道经典面试题,爬楼梯的方式有几种?_第1张图片

绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于想进阶【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助,需要的小伙伴点击下方插件进群免费领取:

你可能感兴趣的:(压力测试,单元测试,软件测试,自动化测试)