Recursion Loops

by vanduzled

JavaScript

// this is the same as
  function multiply(arr, n) {
    var product = 1;
    for (var i = 0; i < n; i++) {
        product *= arr[i];
    }
    return product;
  }
  
  // this
    function multiply(arr, n) {
    if (n <= 0) {
      return 1;
    } else {
      return multiply(arr, n - 1) * arr[n - 1];
    }
  }
  
  
  // Write a recursive function, sum(arr, n), that returns the sum of the first n elements of an array arr 
  function sum(arr, n) {
  if(n <= 0) {
    return 0;
  } else {
    return sum(arr, n - 1) + arr[n - 1];
  }
}

console.log(sum([1,2,3,4],4));
// 10




// Use Recursion to Create a Countdown
// https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-countdown
function countdown(n){
  if(n < 1){
    return [];
  }else{
    console.log(n);
    var cunt = countdown(n - 1);
    cunt.unshift(n);
    return cunt;
  }
}
// Only change code above this line

console.log(countdown(5));
//[5, 4, 3, 2, 1]



// not yet done 
// Use Recursion to Create a Range of Numbers
function rangeOfNumbers (n, m) {
  if (m < n) {
    return [];
  } else {
    const countArray = rangeOfNumbers (n + 1, m - 1);
    countArray.push(n-1,m-1);
    return countArray;
  }
}
console.log(rangeOfNumbers (6, 9));



//Use Recursion to Create a Range of Numbers
//https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/use-recursion-to-create-a-range-of-numbers
function rangeOfNumbers (n, m) {
  if (m < n) {
    return [];
  } else {
    const countArray = rangeOfNumbers (n, m - 1);
    countArray.push(m);
    return countArray;
  }
}
console.log(rangeOfNumbers (6, 9));