public func abs(i: BigInt): BigInt
功能:求一个 BigInt 的绝对值。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let n: BigInt = BigInt(-23)
let abs = abs(n)
println(abs)
} 运行结果:
23
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
public func gcd(i1: BigInt, i2: BigInt): BigInt
功能:求两个 BigInt 的最大公约数。总是返回非负数(相当于绝对值的最大公约数)。
参数:
返回值:
示例:
import std.math.numeric.*
main() {
let i1: BigInt = BigInt(-36)
let i2: BigInt = BigInt(48)
let gcd = gcd(i1, i2)
println(gcd)
} 运行结果:
12
public func lcm(i1: BigInt, i2: BigInt): BigInt
功能:求两个 BigInt 的的最小公倍数。除了入参有 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
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
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
public func sqrt(i: BigInt): BigInt
功能:求 BigInt 的算数平方根,向下取整。
参数:
返回值:
异常:
示例:
import std.math.numeric.*
main() {
let n: BigInt = BigInt(23)
let sqrt = sqrt(n)
println(sqrt)
} 运行结果:
4