Leetcode50

Leetcode50

 

 想法:当 n为奇数时  n = (n-1)*n  当n 为偶数时 n= (n/2)(n/2)ge

编写代码如下

 public double myPow(double x, int n) {
        if(n<0){
            x= 1/x;
        }else {
            x=x;
        }
        return help(x,n);
    }
    double help(double x,int n){
        if(n==1){
            return x;
        }
        if(n%2==0){
            double res = help(x,n/2);
            return res *res;
        }else{
            double res  = help(x,n-1);
            return res * x;
        }
    }

结果

Leetcode50

 

Leetcode50

 

Leetcode50

 

 修改后

 public double myPow(double x, int n) {
        if(n==0){
            return 1;
        }
        long N=(long)(n);
        N= Math.abs(N);
        if(n<0){
            
            x= 1/x;
         
        }else {
            x=x;
            
        }
        return help(x,N);
    }
    double help(double x,long n){
        if(n==1){
            return x;
        }
        if(n%2==0){
            double res = help(x,n/2);
            return res *res;
        }else{
            double res  = help(x,n-1);
            return res * x;
        }
    }

 

 

  

上一篇:eNSP仿真软件之VLAN基础配置及Access接口


下一篇:力扣:50. Pow(x, n)