Power方法的实现

来源:互联网 发布:专业生物英语软件 编辑:程序博客网 时间:2024/06/04 01:11

1.题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
2.code(java1.7版本)
O(n)的复杂度

public class Solution {    public double Power(double base, int exponent) {        if(exponent==0){            return 1;        }        boolean flag=false;        if(exponent<0){            exponent=-exponent;            flag=true;        }        double ans=1;        for(int i=0;i<exponent;i++){            ans*=base;        }        if(flag){            ans=1/ans;        }        return ans;    }}

O(logn)复杂度

public class Solution {    public double Power(double base, int exponent) {        if(exponent==0)return 1;        int p=Math.abs(exponent);        double ans=1;        while(p!=0){            if((p&1)!=0)ans*=base;            base*=base;            p>>=1;        }        return exponent>0?ans:(1/ans);    }}
原创粉丝点击