You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript斐波那契数列代码使其在数值超过1000时停止

如何让斐波那契数列在最后一项大于1000时停止生成?

我懂你的需求——原来的代码靠固定项数limit来终止数列生成,现在要改成当最后一个数值超过1000时自动停止。我们只需要把循环的判断逻辑从「项数限制」换成「数值限制」就行,下面是调整后的代码和两种不同需求的实现方案:

方案1:最后一项不超过1000(生成到≤1000的最大项)

这个方案会确保数列里的所有项都≤1000,当计算出的下一项超过1000时就停止:

function fibonacci() {
  // 初始化斐波那契数列前两项
  let fib = [1, 1];
  
  while (true) {
    // 计算下一个斐波那契数
    const nextNum = fib[fib.length - 1] + fib[fib.length - 2];
    // 下一项超过1000就跳出循环
    if (nextNum > 1000) {
      break;
    }
    // 否则加入数列
    fib.push(nextNum);
  }
  
  return fib;
}

console.log(fibonacci());

方案2:最后一项可以超过1000(生成到第一个>1000的项后停止)

如果你希望数列包含那个超过1000的项,之后再停止,就用这个版本:

function fibonacci() {
  let fib = [1, 1];
  
  // 只要最后一项≤1000,就继续生成下一项
  while (fib[fib.length - 1] <= 1000) {
    const nextNum = fib[fib.length - 1] + fib[fib.length - 2];
    fib.push(nextNum);
  }
  
  return fib;
}

console.log(fibonacci());

额外说明

原来的代码里同时使用了传入的nums数组和内部的data数组,逻辑有点冗余。上面的修改直接在函数内部维护数列,调用起来更简洁,也避免了外部数组可能带来的副作用。

内容的提问来源于stack exchange,提问作者user323111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 19:17:32