Leetcode #50. Pow(x, n) 幂实现 解题报告

来源:互联网 发布:mac 任务管理器快捷键 编辑:程序博客网 时间:2024/05/16 14:37

1 解题思想

就是实现计算x的n次幂,不要用系统内置库就可以

这道题的做法,具体的解法嘛,我是网上找的。。我也忘了。。就这样吧。。反正拆成这个2进制类似的

2 原题

Implement pow(x, n).

3 AC解

   /**     * 这叫比赛解法。。毕竟送分。。。*/    public double myPow2(double x, int n) {        return Math.pow(x,n);    }    /**     * 正式一点好好做:     *      其实么,就是拆解一下,最后就是1+2+4+8这样二进制的,直接这么来就好了     */    public double myPow(double x, int n) {        double base=x;        double result=1;        if(n<0)            base=1/base;        if(n==Integer.MIN_VALUE){            n++;            result=base;        }        n=Math.abs(n);        while(n>0){            if(n%2==1){                result*=base;            }            base=base*base;            n=n/2;        }        return result;    }
0 0
原创粉丝点击