剑指offer-数值的整数次方

题目描述:

实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

​ 快速幂

​ 注意点:n要先转为long类型,在这WA了一次

code

public double myPow(double x, int n) {
    long pow=n;
    if(pow<0) {
        x=1/x;
        pow=-pow;
    }
    double ans=1;
    while(pow>0) {
        if(pow%2==1) {
            ans=x*ans;
        }
        pow/=2;
        x=x*x;
    }
    return ans;
}