JavaScript 中偶数斐波那契数项之和

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/12/12 7:08:17

在给定的问题陈述中,我们必须借助 JavaScript 功能计算偶数斐波那契数项之和。因此,为了解决此任务,我们将使用该语言的基本功能。

理解问题

当前的问题是计算偶数斐波那契数项或项之和,直至给定的斐波那契数限值。您可能知道,斐波那契数列是一系列数字,其中每个数字都是前两个数字之和。该系列通常从 0 和 1 开始。因此,在这个问题中,我们的任务是计算给定范围内偶数之和。例如:如果斐波那契数列的范围是 35。那么首先我们将在给定范围 35 内找到斐波那契数。所以这些数字是 1、1、2、3、5、8、13、21、34.... 所以偶数之和是 2 + 8 + 34 = 44。其中 44 是给定范围内斐波那契数列偶数之和。

给定问题的逻辑

为了解决上述问题,我们将使用 Javascript 实现生成斐波那契数列并计算偶数之和的函数。该函数将有一个限制变量作为输入,并将定义将要考虑的斐波那契数的最大值。之后,我们将初始化变量以跟踪序列中的总和、前一个数字和当前数字。然后我们将使用循环生成斐波那契数列直至给定的限制。之后,我们将验证偶数的条件,并在后续步骤中计算这些偶数的总和。最后,我们将返回给定极限内的偶数斐波那契数的总和。

算法

步骤 1:正如我们在这个问题中所知,我们必须计算偶数斐波那契项的总和。因此,我们将定义一个名为 sumEvenFibonacci 的函数,在这个函数中,我们将使用一个名为 limit 的变量作为参数。这个限制变量将是斐波那契数的最大值。

步骤 2:定义函数后,我们将使用三个变量,并将它们命名为 sum、previous 和 current。这些变量将分别用于存储偶数的总和、系列中的前一个数字以及循环中迭代的当前数字。

步骤 3:现在我们已经定义了要在循环和总和计算中使用的变量。在此阶段,我们将使用循环来迭代系列的数字。循环的条件是运行循环,直到当前值小于或等于极限值。

步骤 4:在此循环中,我们将有另一个条件,即当前数字是否为偶数。如果数字是偶数,则将其添加到 sum 变量。否则,退出 if 条件并将当前值的值更改为系列中的下一个数字。

步骤 5:如果当前数字已超过极限值,则中断循环并返回 sum 的结果。

示例

// 计算偶数斐波那契数列的总和
function sumEvenFibonacci(limit) {
   let sum = 0;
   let previous = 0;
   let current = 1;
 
   while (current <= limit) {
     if (current % 2 === 0) {
      sum += current;
     }
 
     const next = previous + current;
     previous = current;
     current = next;
   }
 
   return sum;
  }
 
  const limit = 40000;
  const result = sumEvenFibonacci(limit);
  console.log(result);

输出

14328

复杂性

计算斐波那契数列中所有偶数之和的时间复杂度为 O(n),其中 n 是给定极限下序列中的项数。由于我们已经迭代了斐波那契数列中的数字一次。因此,我们可以说我们在此函数中执行的是常数时间操作,因此时间复杂度是线性的。该函数的空间复杂度为 O(1),因为我们仅使用了恒定量的内存来存储总和。

结论

因此,在问题中,我们已成功编写了给定的问题,用于在 Javascript 中计算偶数斐波那契数之和。代码首先生成斐波那契数,然后检查偶数以获得总和。


相关文章


有用资源