DS#3 Recursions

https://github.com/kuychaco/algoClass/blob/master/recursion/recursionIntro.js

by bhupendra negi

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

// ex1
function loop(n) {
  for (var i = n; i >= 0; i--) {
    console.log(i);
  }
}

//loop(5);

// ex2
function recloop(n) {
  if (n < 0) return;
  console.log(n);
  recloop(n - 1);
}
//recloop(6);

//ex3
function exponent(base, expo) {
  var result = 1;
  while (expo > 0) {
    result = result * base;
    expo--;
  }
  console.log(result);
}
//exponent(0,0);

//ex4
function RecursiveExponent(base,expo) {
if (expo == 0) return 1;
return base*RecursiveExponent(base,expo-1)
}
//console.log(RecursiveExponent(100,2));

//ex5
function recursiveMultiplier (arr,num,count=0) {
if (count === arr.length ) return;
arr[count] = arr[count] * num
recursiveMultiplier (arr,num,++count)
}
var arr = [1,2,3];
//recursiveMultiplier(  arr,5,0 );
//console.log(arr);

function recursiveMultiplier1 (arr,num) {
var rmul = function (count) {
if (count === arr.length ) return;
arr[count] = arr[count] * num
rmul (++count)
}
rmul(0);
return arr;
}

var arr = [10,20,30];
recursiveMultiplier1(  arr,5 );
console.log(arr);

//ex6 recursive array 1
function reverse(a) {
    if (!a.length) return a;
     return reverse(a.slice(1)).concat(a[0]);
}
console.log(reverse([1,2,3]));

// ex6 recursive aray 2
function recursiveArray (arr) {
var reverArr = [];
var addItems = function (orderedArr) {
	if (orderedArr.length > 0) {
  reverArr.push(orderedArr.pop());
  addItems(orderedArr);
  }
  return;
}
addItems (arr)
return reverArr;
}
console.log(recursiveArray([40,30,20,10]));