0数学中等 LeetCode50. Pow(x, n)

50. Pow(x, n)

描述

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。

class Solution {
    
    
    public double myPow(double x, int n) {
    
    
        if(n == Integer.MIN_VALUE){
    
    
            return x == 1 || x == -1 ? 1 : 0;
        }
        if(n == 0){
    
    
            return 1;
        }
        //递归结束判断
        if(n == 1){
    
    
            return x;
        }
        //如果是负数,把x变为1/x,n变成正数。
        if(n < 0){
    
    
            return myPow(1/x,-n);
        }
        //如果n是偶数,将幂次缩小两倍。
        if(n % 2 == 0){
    
    
            return myPow(x*x,n/2);
        }
        //如果n是奇数,将n转成偶数。
        return x*myPow(x,n-1);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43260719/article/details/121731530