菜鸟系列 Golang 实战 Leetcode —— 面试题16. 数值的整数次方

实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

?

示例 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] 。
func myPow(x float64, n int) float64 {
    if x==0{
        return 0
    }
    if n==0{
        return 1
    }
    if n<0{
        n=-1*n
        x=1/x
    }
    if n%2==0{
        return myPow(x*x,n/2)
    }else{
        return x*myPow(x*x,(n-1)/2)
    }
}