9、数值的整数次方------------>剑指offer系列
数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
这道题逻辑上很简单,但很容易出错
关键是要考虑全面,考虑到所有情况
exponent 是正,负,0的情况
base为0的情况
代码
function Power(base, exponent) {
if (exponent === 0) {
return 1;
} else {
if (exponent > 0) {
var result = 1;
for (let i = 0; i < exponent; i++) {
result *= base;
}
return result;
} else if (exponent < 0) {
var result = 1;
for (let i = 0; i < Math.abs(exponent); i++) {
result *= base;
}
return result ? 1 / result : false;
}
}
}
法二 思路:


代码
const invalidFlag=false
function Power(base, exponent)
{
// write code here
if(base===0&&exponent<0)
{
invalidFlag=true;
return 0;
}
const abs_exponent=exponent>0?exponent:-exponent;
let result=PowerWithExponent(base, abs_exponent);
if(exponent<0){
return 1.0/result;
}
return result;
}
function PowerWithExponent(base, abs_exponent){
if(abs_exponent===0)
return 1;
if(abs_exponent===1)
return base;
let result=PowerWithExponent(base,Math.floor(abs_exponent/2))
result*=result;
if(abs_exponent%2===1)
result*=base;
return result;
}
浙公网安备 33010602011771号