函数
func abs(BigInt)
public func abs(i: BigInt): BigInt
功能:求一个 BigInt 的绝对值。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let n: BigInt = BigInt(-23)
let abs = abs(n)
println(abs)
}
运行结果:
23
func countOne(BigInt)
public func countOne(i: BigInt): Int64
功能:计算并返回入参 BigInt 的二进制补码中 1 的个数。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let i: BigInt = BigInt(255)
let countOne = countOne(i)
println(countOne)
}
运行结果:
8
func gcd(BigInt, BigInt)
public func gcd(i1: BigInt, i2: BigInt): BigInt
功能:求两个 BigInt 的最大公约数。总是返回非负数(相当于绝对值的最大公约数)。
参数:
返回值:
- BigInt - 返回
i1
和i2
的最大公约数,总是返回非负数。
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let gcd = gcd(i1, i2)
println(gcd)
}
运行结果:
12
func lcm(BigInt, BigInt)
public func lcm(i1: BigInt, i2: BigInt): BigInt
功能:求两个 BigInt 的的最小公倍数。除了入参有 0 时返回 0 外,总是返回正数(相当于绝对值的最小公倍数)。
参数:
返回值:
- BigInt - 返回
i1
和i2
的最小公倍数,当入参有 0 时返回 0,其余情况返回正数。
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let lcm = lcm(i1, i2)
println(lcm)
}
运行结果:
144
func max(BigInt, BigInt)
public func max(i1: BigInt, i2: BigInt): BigInt
功能:计算并返回两个 BigInt 中较大的那个。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let max = max(i1, i2)
println(max)
}
运行结果:
48
func min(BigInt, BigInt)
public func min(i1: BigInt, i2: BigInt): BigInt
功能:计算并返回两个 BigInt 中较小的那个。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let min = min(i1, i2)
println(min)
}
运行结果:
-36
func sqrt(BigInt)
public func sqrt(i: BigInt): BigInt
功能:求 BigInt 的算数平方根,向下取整。
参数:
返回值:
异常:
- IllegalArgumentException - 如果入参为负数,则抛此异常。
示例:
import std.math.numeric.*
main() {
let n: BigInt = BigInt(23)
let sqrt = sqrt(n)
println(sqrt)
}
运行结果:
4