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