
Untitled
By: a guest on
May 7th, 2012 | syntax:
None | size: 0.60 KB | hits: 23 | expires: Never
Efficiency of recursion vs. iteration for exponents
function fastExp(base, exponent, accumulator) {
if(exponent == 0) {
return accumulator;
} else if(exponent % 2 == 0) {
return fastExp(base * base, exponent/2, accumulator);
} else {
return fastExp(base, exponent-1, base * accumulator);
}
}
function fastExp(base, exponent) {
var accumulator = 1;
while(exponent != 0) {
if(exponent % 2 == 0) {
base *= base;
exponent /= 2;
} else {
exponent -= 1;
accumulator *= base;
}
}
return accumulator;
}
2^1 = 10
2^2 = 100
2^3 = 1000
2^4 = 10000