Files
sjy01-image-proc/vendor/github.com/nuknal/goNum/PowInt.go
2024-10-24 15:46:01 +08:00

105 lines
1.9 KiB
Go

// PowInt
/*
------------------------------------------------------
作者 : Black Ghost
日期 : 2018-12-12
版本 : 0.0.0
------------------------------------------------------
计算整数或浮点数的整数次幂
理论:
------------------------------------------------------
输入 :
a, n a^n
输出 :
sol 解
------------------------------------------------------
*/
package goNum
import (
"math"
)
// PowFInt 浮点数的整数次幂
func PowFInt(a float64, n int) float64 {
/*
计算浮点数的整数次幂
输入 :
a, n a^n
输出 :
sol 解
*/
if n < 0 {
panic("Error in goNum.PowFInt: n less than zero")
} else if n == 0 {
return 1.0
} else if n == 1 {
return a
}
sol := a
for i := 2; i < n+1; i++ {
sol = sol * a
}
return sol
}
// PowIF 整数的浮点数次幂
func PowIF(a int, n float64) float64 {
/*
计算整数的浮点数次幂
输入 :
a, n a^n
输出 :
sol 解
*/
return math.Pow(float64(a), n)
}
// PowIInt 整数的整数次幂,输出整数
func PowIInt(a, n int) int {
/*
计算整数的整数次幂,输出整数
输入 :
a, n a^n
输出 :
sol 解
*/
if n < 0 {
panic("Error in goNum.PowIInt: n less than zero")
} else if n == 0 {
return 1
} else if n == 1 {
return a
}
sol := a
for i := 2; i < n+1; i++ {
sol = sol * a
}
return sol
}
// PowIIntF 整数的整数次幂,输出浮点
func PowIIntF(a, n int) float64 {
/*
计算整数的整数次幂,输出浮点
输入 :
a, n a^n
输出 :
sol 解
*/
if n < 0 {
panic("Error in goNum.PowIInt: n less than zero")
} else if n == 0 {
return 1.0
} else if n == 1 {
return float64(a)
}
sol := a
for i := 2; i < n+1; i++ {
sol = sol * a
}
return float64(sol)
}