50. Pow(x, n)

来源:互联网 发布:原装ubuntu的电脑 编辑:程序博客网 时间:2024/05/18 23:29

实现power的功能

就是Pow(x,n) = x^n

但实际上按照今天学习的分治法里面的内容,其实x^n = x^(n/2)* x^(n/2) * x

在这道题目里,x的N次方可以看做:x^n = x^(n/2)*x^(n/2)*x^(n%2)

还需要考虑n为负数的情况

利用递归求解

public class Solution {    public double power(double x, int n) {        //pow is to calculate x^n        //and x^n = x^(n/2) * x^(n/2) * x^(n%2)        //n can be odd or even        if(n==0) return 1;        double v = power(x,n/2);        if(n%2 == 0){            return v*v;        } else{            return v*v*x;        }     }        public double myPow(double x, int n){        if(n<0){            return 1/power(x,-n);        }else{            return power(x,n);        }            }}






原创粉丝点击