有一段楼梯台阶有 15 级台阶,以小明的脚力一步最多只能跨 3 级,请问小明登上这段楼梯,有多少种不同的走法?

A. 2345
B. 3261
C. 5768
D. 6843

2 7 收藏


直接登录
最新评论
  • 撒哈拉JF 软件攻城狮 2016/12/05

    C 5768

    斐波那契数列 f(n) = f(n-1) + f(n-2) +f(n-3) (n>=4)

  • 豪满   2016/12/08

    可以用排列组合,有python计算,代码如下:

     

  • SacredHero   2016/12/08

    斐波拉契数列,剑指offer里面好像出现过

    赞第一位

  • Leon   2016/12/12

    斐波那契数列 f(n) = f(n-1) + f(n-2) +f(n-3) (n>=4)

    具体怎么算啊,指点

  • jerryjiahaha Student 2016/12/20

    C 5768

    因为台阶数只有15,列出递归式后,一步一步手算末尾数,便可得到该选择题答案。

    不然就是求特征方程或者矩阵什么的了。

    如果可以py3交易那想到这么几种方法:

    还想到一种,也是遍历所有可能性,把我代码里给的(尾?)递归改成用栈回溯啊遍历树啊什么的…我绕不太明白Orz

     

    • jerryjiahaha Student 01/08

      才发现自己的代码有问题。。。果然晚上写程序会神游。。。明明当时想得好好的。。。calc_equ_all 函数里面应该调用calc_equ_all(r-args[0]*count, *args[1:])。。

       

  • xinliy   2016/12/21

    结果就是C啊,为什么你们写了那么多代码。。。

  • Lady L web前端 2016/12/23

    看了下大家的,基本都是用斐波那契解的,这有个不一样的解法。以楼梯为对象,被小明踩到了记1,没被踩到的记0。一个阶梯就有两种可能,即0和1。一共有15级阶梯,那么 总可能有2^15个。比如,小明是一级一级走的,那就可以表示为 :11111 11111 11111,。但是小明一次最多跨三级,到第四级就会扯蛋了,所以,要去掉有三个零连在一起的情况。

     

    运行结果是5768.(差不了图片,就说下结果吧,嘿嘿)

  • bing   03/31

  • 感觉楼上想法都挺好的,但笔试题谁会让你写代码跑结果!!!

    快速方法:

    假设f(0) = 1

    f(1) = 1   (奇数)

    f(2) = 2   (偶数)

    f(3) = 4   (偶数)

    f(5) = 7    (奇数)

    f(6) = 13   (奇数)

    f(7) = 24    (偶数)

    所以一般是两个偶数后是两个奇数,所以循环节是4, 所以15%4=3 ,故为偶数,故选C

  • Illusion .NET 04/21

    javascript

    a(15)  //5768