【LeetCode(Java) - 50】Pow(x, n)

    科技2025-12-22  17

    文章目录

    1、题目描述2、解题思路3、解题代码

    1、题目描述

    2、解题思路

      采用递归的思路:

      1、如果 N==0,则求的是 x 的 0 次方,返回 1;

      2、如果 N != 0,先求 x 的 n/2 次方 y,如果 n 是偶数,则返回 y × y;如果 n 是奇数,则返回 y × y × x。

      需要注意的点:给定的 n 不一定是正数,如果是负数,则求的是 x 的倒数的 -n 次方;

    3、解题代码

    class Solution { public double myPow(double x, int n) { long N = n; return N >= 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N); } public double quickMul(double x, long N) { if (N == 0) { return 1.0; } double y = quickMul(x, N / 2); return N % 2 == 0 ? y * y : y * y * x; } }
    Processed: 0.017, SQL: 9