[Go的算法实现]数值的整数次方
      
      
      Publish date: Jul 26, 2019
      
        
          
Last updated: Jun 14, 2020
    
      
    
    
    
      
  
    
    Last updated: Jun 14, 2020
剑指Offer中问题11的go实现。
问题
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
result(n) = result(n-1) *or/ result
使用递归即可。
注意点
- base为0
 - base为负值
 - exponent为0
 - exponent为负值
 
代码实现
package q011
func Answer(base float64, exponent int) (result float64) {
	if exponent == 0 {
		return 1
	}
	if exponent == 1 {
		return base
	}
	if exponent == -1 {
		return 1 / base
	}
	result = Answer(base, exponent>>1)
	result *= result
	if (exponent & 1) == 1 {
		result *= base
	}
	return
}