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
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 Work in Code Editor
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.
Write the solution code following your recursive definition from above.
View Our Solution Work in Code Editor
function sumOfNaturalNumbers(n) {
if (n <= 1) {
return n;
}
return n + sumOfNaturalNumbers(n - 1);
}