程序员社区

LeetCode-50-Pow(x, n)

50. Pow(x, n)

难度中等644收藏分享切换为英文接收动态反馈

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

示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000

示例 2:

输入:x = 2.10000, n = 3
输出:9.26100

示例 3:

输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25

提示:

  • -100.0 < x < 100.0
  • -231 <= n <= 231-1
  • -104 <= xn <= 104

LeetCode-50-Pow(x, n)插图
image-20210513094652167

A的4次方=( A的2次方)*( A的2次方)

A的8次方=( A的4次方)*( A的4次方)

LeetCode-50-Pow(x, n)插图1
image-20210513095119089
class Solution {
    public static double myPow(double x, int n) {
        if (n == 0) {
            return 1D;
        }
        if (n == Integer.MIN_VALUE) {
            return (x == 1D || x == -1D) ? 1D : 0;
        }
        int pow = Math.abs(n);
        double t = x;
        double ans = 1D;
        while (pow != 0) {
            if ((pow & 1) != 0) {
                ans *= t;
            }
            pow >>= 1;
            t = t * t;
        }
        return n < 0 ? (1D / ans) : ans;
    }
}
LeetCode-50-Pow(x, n)插图2
image-20210513095648778
赞(0) 打赏
未经允许不得转载:IDEA激活码 » LeetCode-50-Pow(x, n)

一个分享Java & Python知识的社区