JavaScript 实现台阶算法:斐波那契数列求解思路

作者:小括号

时间:2026-10-30

浏览:306

本文解析一道经典的 JavaScript 台阶算法面试题。通过从 1 格到 4 格的逐步推导,揭示走法数量符合斐波那契数列规律(s(n) = s(n-1) + s(n-2))。文章提供了基于循环迭代的 JS 代码实现,用于计算 100 级台阶的总走法,避免递归带来的性能问题,适合前端开发者参考学习。

文章目录

台阶问题描述

假设有一段共 100 级的台阶,每次可以选择跨 1 级或 2 级,请问共有多少种不同的走法?

在一次电话面试中,我遇到了这道算法题,当时瞬间感到困惑,不知如何下手。

随后我尝试自行推导:如果每次都只走 1 级,最多需要 100 步;如果每次都跨 2 级,最少需要 50 步。这种思路显然偏离了核心解法,好在面试官及时打断,否则我可能会继续陷入死胡同。

面试结束后,我回到家中,使用 Mac 电脑仔细思考并重新梳理逻辑,最终写出了正确的代码。


var Stairs = new step();
function step(){
  this.n1=1;
  this.n2=2;
  this.total=100;
  this.getFunction = getFunction;
}
function getFunction(){
    for(i=2;i<this.total;i++){
      res = this.n1 + this.n2;
      this.n1 = this.n2;
      this.n2 = res;
    }
  return res;
}
var totalStairs = Stairs.getFunction();
alert(totalStairs)

小规模案例推导

当只有 1 级台阶时,只能走 1 步,因此只有 1 种走法。

当有 2 级台阶时,可以是“1+1”或者“2”,共有 2 种走法。

当有 3 级台阶时,组合方式包括“1+1+1”、“2+1”和“1+2”,共 3 种走法。

当有 4 级台阶时,可能的序列包括“1+1+1+1”、“2+2”、“2+1+1”、“1+1+2”和“1+2+1”,共计 5 种走法。

斐波那契规律与代码实现

观察上述规律可以发现,第 n 级台阶的走法数 s(n) 等于前两级走法数之和,即递推公式为:s(n) = s(n-1) + s(n-2)。

这正是斐波那契数列的特征。基于此规律,我们可以编写相应的代码来求解。


for(i=2;i<this.total;i++){
   res = this.n1 + this.n2;
   this.n1 = this.n2;
   this.n2 = res;
}

本人对算法研究尚浅,以上分析如有不当之处,欢迎指正。

以上就是关于 JS 台阶算法面试题的全部内容,希望对大家有帮助,欢迎支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章