我正在用 Swift 编写一个计算阶乘的函数,代码如下:
func factorial(factorialNumber: UInt64) -> UInt64 {
if factorialNumber == 0 {
return 1
} else {
return factorialNumber * factorial(factorialNumber - 1)
}
}
let x = factorial(20)
这个函数可以计算到20。
我认为21的阶乘值大于UINT64_MAX。
那么如何在Swift中计算21!(21的阶乘)?
H,L
样式的变量(每个数字使用两个变量),或者使用某种bigint库。如果你选择使用bigints,也许这个快速精确的bigint阶乘能帮上一些忙。 - Spektre