• 剑指offer JZ-12


    题目描述

    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
     
    保证base和exponent不同时为0
    示例1

    输入

    复制
    2,3

    返回值

    复制
    8.00000

    思路:

    可以循环暴力,但是更节省时间的方法还是快速幂

    通过每次迭代时将计算规模折半,从而使时间复杂度压缩至log2(n)

    代码实现时需注意指数的正负

    class Solution {
    public:
        double Power(double base, int exponent) {
            if (exponent == 0)
                return 1;
            bool op;
            if(exponent < 0)
                op = false;
            else
                op = true;
            return Pow(base,exponent,op);
        }
        
        double Pow(double base, int exp,bool op)
        {
            double ans = 1;
            while(exp)
            {
                if(exp % 2)
                {
                    ans *= base;
                }
                base *= base;
                exp /= 2;
            }
            if(op)
                return ans;
            else
                return 1/ans;
        }
    };
    View Code
  • 相关阅读:
    EncodeLDPC校验矩阵H的高斯变换
    Linuxubuntu学习(一)
    tcp通信
    HTTP协议,超文本传输协议
    局部变量成员变量
    线程
    正则表达式
    面向对象
    String类
    Object类
  • 原文地址:https://www.cnblogs.com/alan-W/p/14232459.html
Copyright © 2020-2023  润新知