使用递归方式实现


存在大量重复运算

  1. function fibonacci(n) {
  2. if (n <= 1) {
  3. return n;
  4. }
  5. return fibonacci(n - 1) + fibonacci(n - 2);
  6. }

使用迭代方式


  1. function fibonacci(n) {
  2. if (n <= 1) {
  3. return n;
  4. }
  5. let first = 0;
  6. let second = 1;
  7. for (let i = 0; i < n - 1; i++) {
  8. second = first + second;
  9. first = second - first;
  10. }
  11. return second;
  12. }