Ask LSBot

Practice: Sum of Natural Numbers

We'll now practice the techniques learned in this section using the "Sum of Natural Numbers" problem. Try to solve the problem recursively on your own first. If it helps to start by writing an iterative solution, feel free to do so. Remember to write a complete 'Recursive Definition' before attempting a solution.

Problem Description

// Create a function that calculates the sum of the first `n`
// natural numbers. A natural number is a positive integer
// starting from 1. Therefore, the sum of the first `n` natural
// numbers is the sum of all integers from 1 to `n`.

// For example, if `n` is 5, the sum would be 1 + 2 + 3 + 4 + 5 == 15.

console.log(sumOfNaturalNumbers(1) === 1);
console.log(sumOfNaturalNumbers(5) === 15);
console.log(sumOfNaturalNumbers(10) === 55);
console.log(sumOfNaturalNumbers(20) === 210);
console.log(sumOfNaturalNumbers(0) === 0);

// All test cases should log true.

Exercises

  1. Write the recursive definition for the "Sum of Natural Numbers" problem. Make sure to include both a base case and a recursive definition.

    View Our Solution

    In recursive problem-solving, we typically define two key components: a recursive definition and a base case. The recursive definition breaks down the problem into smaller instances of the same problem, while the base case provides a simple, non-recursive termination condition.

    The Base Case

    The base case in this scenario occurs when the number n is less than or equal to 1. In such cases, the sum of all natural numbers up to n is n itself. Although 0 is not traditionally a natural number, we include it here to handle edge cases effectively. This consideration is reflected in the last of our example test cases, where 0 is provided as input.

    The Recursive Definition

    In the case of summing the first n natural numbers, our recursive definition is as follows: The sum of the first n natural numbers can be expressed as n plus the sum of the first n-1 natural numbers.

    The solution becomes more attainable with a well-defined base case and a recursive definition.

  2. Write the solution code following your recursive definition from above.

    View Our Solution

    function sumOfNaturalNumbers(n) {
      if (n <= 1) {
        return n;
      }
      return n + sumOfNaturalNumbers(n - 1);
    }
    
This conversation with LSBot is temporary. Sign up for free to save your conversations with LSBot.

Hi! I'm LSBot. I'm here to help you understand this chapter content with fast, focused answers.

Ask me about concepts, examples, or anything you'd like clarified from this chapter. I can explain complex topics, provide examples, or help connect ideas.

Want to know more? Refer to the LSBot User Guide.

This conversation with LSBot is temporary. Sign up for free to save your conversations with LSBot.

Hi! I'm LSBot. I'm here to help you think through this exercise by providing hints and guidance, without giving away the solution.

You can ask me about your approach, request clarification on the problem, or seek help when you feel stuck.

Want to know more? Refer to the LSBot User Guide.