Implement pow(a,b) without multiplication or division

Power without using multiplication(*) and division(/) operators

by Sandeep Kumar

HTML

<div id="banner-message">
  <div id="divInput">
    <input type="text" id="inpNumber" placeholder="Enter Number" />
    <input type="text" id="inpPower" placeholder="Enter Power Value" />
  </div>
  <button>Calculate Power</button>
  
   <div id="divOutput" style="display:none; font-size: 16px;">
      <br />
      Using repeated addition: <span id="spanRecPower"></span>
      <br />
      Using Recursion: <span id="spanAddPower"></span>
  </div>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}

#divInput {
  padding: 5px;
  margin-bottom: 5px;
}

#spanCubeRoot {
  padding: 5px;
  margin-top: 5px;
}

JavaScript

// find elements
var button = $("button")

// handle click and add class
button.on("click", () => {
	$("#divOutput").hide();
	var number = parseInt($("#inpNumber").val());
	var power = parseInt($("#inpPower").val());
  
  var recOut = powUsingRec(number, power);
  var addPow = powUsingAddition(number, power);
  
   $("#spanRecPower").text(recOut);
   
   $("#spanAddPower").text(addPow);
   
	$("#divOutput").show();
})

// A recursive function to get a^b
// Works only if a >= 0 and b >= 0
function powUsingRec(a, b)
{
    if (b > 0)
        return multiply(a, powUsingRec(a, b - 1));
    else
        return 1;
}
 
// A recursive function to get x*y
function multiply(x, y)
{
    if (y > 0)
        return (x + multiply(x, y - 1));
    else
        return 0;
}

/* Works only if a >= 0 and b >= 0 */
function powUsingAddition(a , b)
{
    if (b == 0)
        return 1;
         
    var answer = a;
    var increment = a;
    var i, j;
     
    for (i = 1; i < b; i++)
    {
        for (j = 1; j < a; j++)
        {
            answer += increment;
        }
        increment = answer;
    }
     
    return answer;
}