剑指Offer面试题11:数值的整数次方(js实现)
题目描述:实现函数Power(base, exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数的问题
function Power(base, exponent) {
//如果底数为0并且指数小于0报错
if(equal(base, 0.0) && exponent < 0) {
return false;
}
var absExponent = Math.abs(exponent);
var result = PowerWithUnsignExponent(base, absExponent);
//如果指数小于0取倒数
if(exponent < 0) {
result = 1.0/result;
}
return result;
}
//判断两个小数是否相等
function equal(num1, num2) {
if((num1 - num2 > -0.00000001) && (num1 - num2 < 0.00000001)) {
return true;
}else {
return false;
}
}
//计算
function PowerWithUnsignExponent(base, exponent) {
var result = 1.0;
for(var i = 0; i < exponent; i++) {
result *= base;
}
return result;
}