题目

class Solution {
public:
    double traversal(double x, int n){
        if(n==0) return 1.00000;
        double y = traversal(x, n/2);      //本题需要对递归时的指数进行二分法,否则超时。
        return n%2==0 ? y*y : y*y*x;      //y=(x^4)。n=8,则x^8=y*y;n=9,则x^9=y*y*x。
    }
    double myPow(double x, int n) {
        if(n<0) x = 1/x;      //先进行指数正负的判断
        return traversal(x, n);
    }
};

以上方法来自力扣官方题解

posted on 2023-08-18 21:37  孜孜不倦fly  阅读(10)  评论(0)    收藏  举报