DEV Community

NJOKU SAMSON EBERE
NJOKU SAMSON EBERE

Posted on • Edited on

8 1

Algorithm 101: 3 Ways to Get the Fibonacci Sequence

In mathematics, the Fibonacci numbers, commonly denoted Fn, form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. - Wikipedia

In this article, we don't want to just return the nth term of a sequence, but we want to return the whole sequence as an array depending on the starting points given. Our counting follows the image below:

Alt Text


fibonacci(8); // 21

Enter fullscreen mode Exit fullscreen mode

We are already used to the function call above usually achieved by the code below:


      function fibonacci(n) {
        let firstNum = 0;
        let secondNum = 1;
        let sum = 0;

        for (let i = 0; i <= n - 2; i++) {
          sum = firstNum + secondNum;
          firstNum = secondNum;
          secondNum = sum;
        }

        return sum;
      }

Enter fullscreen mode Exit fullscreen mode

Now, we want to move a little further to returning the whole sequence depending on the starting points (array of 2 numbers) and the limit (nth term) given.


fibonacciSequence([0, 1], 9); //[ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ]

fibonacciSequence([10, 20], 9); //[ 10, 20, 30, 50, 80, 130, 210, 340, 550, 890 ]

Enter fullscreen mode Exit fullscreen mode

Prerequisite

To benefit from this article, you need to possess basic understanding of javascript's arithmetic and array methods.

Let's do this!

  • for...loop
      function fibonacciSequence(array, limit) {
        let finalArray = [...array];

        for (let i = 0; i < limit - 1; i++) {
          let sum = array[0] + array[1];
          finalArray.push(sum);
          array = [array[1], sum];
        }

        return finalArray;
      }
Enter fullscreen mode Exit fullscreen mode
  • while...loop
      function fibonacciSequence(array, limit) {
        let finalArray = [...array];
        let counter = 0;

        while (counter < limit - 1) {
          let sum = array[0] + array[1];
          finalArray.push(sum);
          array = [array[1], sum];
          counter++;
        }

        return finalArray;
      }
Enter fullscreen mode Exit fullscreen mode
  • do...while...loop
      function fibonacciSequence(array, limit) {
        let finalArray = [...array];
        let counter = 0;

        do {
          let sum = array[0] + array[1];
          finalArray.push(sum);
          array = [array[1], sum];
          counter++;
        } while (counter < limit - 1);

        return finalArray;
      }
Enter fullscreen mode Exit fullscreen mode

Conclusion

There are many ways to solve problems programmatically. I will love to know other ways you solved yours in the comment section.

Up Next: Algorithm 101: 2 Ways to Find the Largest Product Yielded by 3 Integers

If you have questions, comments or suggestions, please drop them in the comment section.

You can also follow and message me on social media platforms.

Twitter | LinkedIn | Github

Thank You For Your Time.

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (1)

Collapse
 
wozaisuzhou profile image
Danny

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs