数值的整数次方
给定一个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;
}