1. 程式人生 > 其它 >LeetCode0050-Pow(x,n)

LeetCode0050-Pow(x,n)

技術標籤:LeetCodeleetcode演算法javapow 函式快速冪

LeetCode0050-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

說明:

-100.0 < x < 100.0
n 是 32 位有符號整數,其數值範圍是 [−231, 231 − 1] 。

程式碼:

/**
 * 0050-Pow(x,n)
 * 實現 pow(x, n) ,即計算 x 的 n 次冪函式。
 * <p>
 * 示例 1:
 * <p>
 * 輸入: 2.00000, 10
 * 輸出: 1024.00000
 * <p>
 * 示例 2:
 * <p>
 * 輸入: 2.10000, 3
 * 輸出: 9.26100
 * <p>
 * 示例 3:
 * <p>
 * 輸入: 2.00000, -2
 * 輸出: 0.25000
 * 解釋: 2-2 = 1/22 = 1/4 = 0.25
 * <p>
 * 說明:
 * <p>
 * -100.0 < x < 100.0
 * n 是 32 位有符號整數,其數值範圍是 [−231, 231 − 1] 。
 */
/** * 快速冪+遞迴 */ class Solution { public double myPow(double x, int n) { long N = n; return N >= 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N); } private 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; } } public class Study0050 { public static void main(String[] args) { System.out.println(new Solution().myPow(2.0, -2)); } }

結果:

在這裡插入圖片描述