菜鸟系列 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)
}
}