50.Pow(x, n)

题目描述

实现 pow(x, n) ,即计算x的n次幂。

示例 1:

输入: 2.00000, 10
输出: 1024.00000

示例 2:

输入: 2.10000, 3
输出: 9.26100

示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
说明:
      1.-100.0 < x < 100.0;

      2.n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] ;

解题思路分析

根据n的奇偶性来进行优化

    public double myPow2(double x, int n){
        if (n==0) return 1;
        if (x==0) return 0;

        if (n < 0) {
            return 1 / x * myPow2(1/x, -(n + 1));
        } else {
            if (n % 2 != 0) {
                return x * myPow2(x * x, n / 2);
            } else {
                return myPow2(x * x, n / 2);
            }
        }
    }
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页