zoukankan      html  css  js  c++  java
  • 剑指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;
    }
    
  • 相关阅读:
    1112评论
    1029 C语言文法
    0909编译原理理解和解释
    复利计算4.0-单元测试
    命令解析程序的编写
    《构建之法》1、2、3章思考与感想
    复利计算4.0
    实验三的分析与总结
    复利计算(更新)
    单、复利计算程序
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5042832.html
Copyright © 2011-2022 走看看