剑指offer:数值的整数次方

题目描述:

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

解题思路:

一开始直接用一个for循环做连乘,测了一下,发现这个指数可能是负数,于是分了两种情况后ac。

看了网上的题解,发现还有base为0的情况,此时直接就返回0,但是这里不能直接用==来判断两个小数是否相等。设定一个很小的数来做判断,例如0.0000001。

代码:

class Solution {
public:
    double Power(double base, int exponent) {
        if((base-0)>-0.0000001 && (base-0)<0.0000001)
            return 0;
        if(exponent==0)
            return 1;
        double sum=1;
        if(exponent>0)
        {
            for(int i = 1; i<=exponent; i++)
            {
                sum = sum*base;
            }
            return sum;
        }
        else{
            for(int i=1; i<=(-exponent); i++)
            {
                sum = sum*(1.0/base);
            }
        }
        return sum;
    }
};
原文地址:https://www.cnblogs.com/LJ-LJ/p/10593757.html