美文网首页
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