Files
freeCodeCamp/curriculum/challenges/english/08-coding-interview-prep/rosetta-code/fibonacci-sequence.english.md
Randell Dawson c25916c9a2 fix(curriculum): changed test text to use should for Coding Interview Prep - part 2 of 2 (#37766)
* fix: changed test text to use should

* fix: corrected typo

Co-Authored-By: Tom <20648924+moT01@users.noreply.github.com>

* fix: removed extra period

Co-Authored-By: Tom <20648924+moT01@users.noreply.github.com>

* fix: removed extra period

Co-Authored-By: Tom <20648924+moT01@users.noreply.github.com>

* fix: removed extra period

Co-Authored-By: Tom <20648924+moT01@users.noreply.github.com>

* fix: removed extra period

Co-Authored-By: Tom <20648924+moT01@users.noreply.github.com>

* fix: corrected typo

Co-Authored-By: Tom <20648924+moT01@users.noreply.github.com>
2019-11-20 10:01:31 -05:00

1.4 KiB

title, id, challengeType, forumTopicId
title id challengeType forumTopicId
Fibonacci sequence 597f24c1dda4e70f53c79c81 5 302268

Description

Write a function to generate the nth Fibonacci number. The nth Fibonacci number is given by: Fn = Fn-1 + Fn-2 The first two terms of the series are 0 and 1. Hence, the series is: 0, 1, 1, 2, 3, 5, 8, 13...

Instructions

Tests

tests:
  - text: <code>fibonacci</code> should be a function.
    testString: assert(typeof fibonacci === 'function');
  - text: <code>fibonacci(2)</code> should return a number.
    testString: assert(typeof fibonacci(2) == 'number');
  - text: <code>fibonacci(3)</code> should return 1.
    testString: assert.equal(fibonacci(3),1);
  - text: <code>fibonacci(5)</code> should return 3.
    testString: assert.equal(fibonacci(5),3);
  - text: <code>fibonacci(10)</code> should return 34.
    testString: assert.equal(fibonacci(10),34);

Challenge Seed

function fibonacci(n) {
  // Good luck!
}

Solution

function fibonacci(n) {
  let a = 0, b = 1, t;
  while (--n > 0) {
    t = a;
    a = b;
    b += t;
  }
  return a;
}