题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
//题目是考察原始的数据运算,要不直接用java自带函数库Math.pow(base,exponent);即可求得结果
//需要考虑三种情况,大于零,小于零,等于零。
//当exponent小于零时,我们把它转化为大于零即可。代码如下:
public class Solution {
public double Power(double base, int exponent) {
if(exponent<0){
base=1/base;
exponent=-exponent;
}
if(exponent==0) return 1;
if(exponent==1) return base;
double result=Power(base,exponent>>1);
result*=result;
if((exponent&1)==1) result*=base;
return result;
}
}
本文介绍了一种不使用内置函数实现浮点数幂运算的方法。通过递归调用自身来处理指数为任意整数的情况,并针对指数为负数的情况进行了特别处理。此算法能够有效地计算出给定底数与指数的幂。
1873

被折叠的 条评论
为什么被折叠?



