牛客网剑指offer刷题Java版-12数值的整数次方

题目描述

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

保证base和exponent不同时为0

方法1O(N):

public class Solution {
    public double Power(double base, int exponent) {
        if(exponent==0)
            return 1;
        if(exponent>0)
            return Power(base,exponent-1)*base;
        else
            exponent*=-1;
            return 1/(Power(base,exponent-1)*base);
  }
}

方法2O(logN):

public class Solution {
    public double Power(double base, int exponent) {
        double ans=1;
        if(exponent==0)
            return 1;
        else if(base==0)
            return 0;
        else if(exponent>0){
            if(exponent==1)
                return base;
            while(exponent!=0){
                if((exponent&1)==1)
                    ans=ans*base;
                exponent=exponent>>1;
                base*=base;
            }
            return ans;
        }
        else {
            exponent*=-1;
            return 1/Power(base,exponent);
        }
    }
}
发布了19 篇原创文章 · 获赞 0 · 访问量 195

猜你喜欢

转载自blog.csdn.net/qq_42632671/article/details/104295031