Pow(x,n)

来源:互联网 发布:单片机应用技术 编辑:程序博客网 时间:2024/05/01 16:24

Question:

Implement pow(x, n).


//********** Hints ************

如果用正常recursion会超时,此题可以用对分来处理

//*****************************


Solution:

public class Solution {
    public double pow(double x, int n) {
        
        long l = n;
        if(l >= 0)
            return power(x, l);
        else
            return 1/power(x, -l);
    }
    
    public double power(double x, long l){
        if(l == 1)
            return x;
        
        if(l == 0)
            return 1;
            
        double result = power(x, l>>1);
        result *= result;
        
        if((l & 0x1) == 1)
            result *= x;
            
        return result;
    }
}


0 0