• 剑指offer 面试题11


    主题:
    实现功能double Power(double base,int exponent),乞讨base的exponent钍。不能使用的库函数,同时也不需要考虑的大量问题。

    #include<iostream>
    using namespace std;
    
    double PowerUnsigned(double base ,unsigned int exponent)
    {
        if (exponent == 0)
            return 1;
        if (exponent == 1)
            return base;
        double result = PowerUnsigned(base,exponent>>1);
        result *= result;
        if ((exponent & 0x1) == 1)
            result = result*base;
        return result;
    
    }
    
    bool equal(double num1,double num2)
    {
        if ((num1 - num2 > -0.00000001) && (num1 - num2 < 0.00000001))
            return true;
        else
            return false;
    }
    
    double Power(double base, int exponent)
    {
        if (equal(base, 0) && exponent < 0)
            throw exception("Invaild value");
    
        unsigned int absExponent = static_cast<unsigned int>(abs(exponent));
    
        double result = PowerUnsigned(base, absExponent);
        if (exponent < 0)
            result = 1 / result;
        return result;
    
    }
    
    int main()
    {
    
        double v1 = 2;
        int v2 = -1;
        cout<<Power(v1,v2);
    
        return 0;
    }
    
  • 相关阅读:
    PhoneGap打包webApp
    mysql触发器实例说明
    mysql索引总结
    python:生成器
    python:装饰器
    python:局部变量与全局变量
    python:函数
    python:文件操作
    python:集合及其运算
    python:字符串常用函数
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5042832.html
Copyright © 2020-2023  润新知