mirror of
https://github.com/trekhleb/javascript-algorithms.git
synced 2025-12-08 19:06:00 +00:00
* Adding math algorithm to compute power and its tests * adding more test cases, updating compute power js * Updating ReadMe for power computation algorithm
24 lines
636 B
JavaScript
24 lines
636 B
JavaScript
/**
|
|
* @param {number1} number
|
|
* @param {number2} number
|
|
* @return {number1^number2}
|
|
*/
|
|
|
|
// recursive implementation to compute power
|
|
export default function computePower(number1, number2) {
|
|
let val = 0;
|
|
let res = 0;
|
|
if (number2 === 0) { // if number2 is 0
|
|
val = 1;
|
|
} else if (number2 === 1) { // if number2 is 1 return number 1 as it is
|
|
val = number1;
|
|
} else if (number2 % 2 === 0) { // if number2 is even
|
|
res = computePower(number1, number2 / 2);
|
|
val = res * res;
|
|
} else { // if number2 is odd
|
|
res = computePower(number1, Math.floor(number2 / 2));
|
|
val = res * res * number1;
|
|
}
|
|
return val;
|
|
}
|