Go语言实现:【剑指offer】数值的整数次方
该题目来源于牛客网《剑指offer》专题。
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0。
Go语言实现:
func power(base float64, exponent int) float64 {
result := 1.0
//指数为0
if exponent == 0 && base != 0 {
return 1
}
//指数为负
if exponent < 0 && base != 0 {
//位运算
for ; exponent != 0; exponent++ {
result *= base
}
result = 1 / result
return result
}
//指数为正
if exponent > 0 {
//位运算
for ; exponent != 0; exponent-- {
result *= base
}
return result
}
//exponent == 0 && base == 0 理论上为1,但不合题意
//exponent < 0 && base == 0 分母为0,无效输入
return -1
}