美文网首页
2019-09-08[剑指offer-]数值的整数次方

2019-09-08[剑指offer-]数值的整数次方

作者: Coding破耳 | 来源:发表于2019-11-15 22:23 被阅读0次

题目描述

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

保证base和exponent不同时为0

class Solution {
public:
    bool Equal(double num1, double num2)
    {
        if (num1 - num2 > -0.0000001 &&
            num1 - num2 < 0.0000001)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    double PowerWithUintExponent(double baseNumber, int exponent)
    {
        double result = 1.0;
        for (int i = 1; i <= exponent; i++)
        {
            result = result * baseNumber;
        }

        return result;
    }
    
    double Power(double base, int exponent) 
    {

        // 当底数(base)是零且指数是负数的时候提示参数非法
        if (Equal(base, 0.0) && exponent < 0)
        {
            return 0.0;
        }

        int absExponent = exponent;
        if (exponent < 0)
        {
            absExponent = (-1 * exponent);
        }

        double result = PowerWithUintExponent(base, absExponent);

        // 当指数为负数的时候需算出次方的结果之后再取倒数
        if(exponent < 0)
        {
            result = 1.0 / result;
        }

        return result;
    }
};

相关文章

网友评论

      本文标题:2019-09-08[剑指offer-]数值的整数次方

      本文链接:https://www.haomeiwen.com/subject/cncpyctx.html