實現 pow(x, n) ,即計算 x 的 n 次冪函數。git
示例 1:github
輸入: 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
說明:函數
來源:力扣(LeetCode)
連接:https://leetcode-cn.com/problems/powx-n
著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。ui
思路解析:對n進行以2爲底的對數運算,對x進行以x爲底的冪運算,遞歸進行,注意最後要進行符號處理:
一個例子:求2.0的10次方spa
tips:code
算法複雜度:遞歸
package leetcode; /** * @author ZhouJie * @date 2020年2月2日 下午10:23:55 * @Description: 50. Pow(x, n) * */ public class LeetCode_0050 { } class Solution_0050 { /** * @author: ZhouJie * @date: 2020年2月4日 下午11:29:49 * @param: @param x * @param: @param n * @param: @return * @return: double * @Description: 1-對n進行對數運算,對x進行冪計算; * */ public double myPow(double x, int n) { boolean f = n > 0; double y = 1.0; while (n != 0) { // 對n取對數的同時對x進行冪計算,若n不爲2的倍數則補乘一次x; if (n % 2 != 0) { y *= x; } x *= x; n /= 2; } return f ? y : 1 / y; } }