Pow(x,n)

x的N次方可以看做:x^n = x(n/2)*x(n/2)*x(n%2)。利用递归求解,当n==1的时候,xn=x。
不要试图顺序理解递归。

    public double myPow(double x, int n) {
        if (n == 0) return 1;
        //half的每个值对应一个return。如果没有return,就会一直卡住。不能正向理解。
        double half = myPow(x, n / 2);
        if (n % 2 == 0) {
            return half * half;
        }
        if (n % 2 == 1) {
            return half * half * x;
        } else {
            return half * half / x;
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述 Implement pow(x, n).实现x的n次方计算 问题分析 暴力求解 考虑极端输入:2.1 结...
    一里山阅读 2,563评论 0 0
  • LeetCode 50 Pow(x, n) Implement pow(x, n). 遇到math类的题,比如po...
    ShuiLocked阅读 6,054评论 1 2
  • Implement pow(x, n).实现x的n次方。利用x^n = x^(n/2) * x^(n/2) *x^...
    exialym阅读 2,299评论 0 0
  • Implement pow(x, n). Hide Company TagsLinkedIn Google Blo...
    番茄晓蛋阅读 1,469评论 2 1
  • Implement pow(x, n). Solution1:递归实现 思路: 2^7 = (half=2^3) ...
    matrxyz阅读 1,410评论 0 0