题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:
1 关于次幂的问题特殊的情况,比如次幂为负数,或者基数为0时等等复杂的情况
2 机器中浮点数的比较是由误差的,因此double类型的比较,不能用简单的a==0来比较。一般的比较方式是,相减的差在一个很小的区间内,我们就认为是相等的。
class Solution {
public:
double Power(double base, int exponent) {
double mul=1.0;
/* 如果exponent = 0 输出1 */
if(exponent == 0)
{
return 1.00000;
}
/* 如果base = 0 输出0 */
if(base >= -0.000001 && base <= 0.000001)
{
return 0;
}
/* 如果指数大于0 */
if(exponent > 0)
{
for(int index = 0; index < exponent; index++)
{
mul *= base;
}
}
else
{
exponent = -exponent;
for(int index = 0; index < exponent; index++)
{
mul *= base;
}
mul = 1.0/mul;
}
return mul;
}
};
http://blog.csdn.net/qq_23217629/article/details/51729501
http://blog.csdn.net/Yanfucahng/article/details/52876300?utm_source=itdadao&utm_medium=referral
拥抱明天!
不给自己做枷锁去限制自己。
别让时代的悲哀,成为你人生的悲哀。

浙公网安备 33010602011771号