-
Notifications
You must be signed in to change notification settings - Fork 44
/
PowInt.go
104 lines (97 loc) · 1.95 KB
/
PowInt.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// 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)
}