Ich mache Funktion, die factorial in swift berechnen. wie dieseWie berechnet man die 21! (21 Fakultät) in swift?
func factorial(factorialNumber: UInt64) -> UInt64 {
if factorialNumber == 0 {
return 1
} else {
return factorialNumber * factorial(factorialNumber - 1)
}
}
let x = factorial(20)
kann dieses fuction 20.
, bis berechnen Ich denke faktorielles (21) Wert größer als UINT64_MAX.
dann Wie berechnet man die 21! (21 Fakultät) in swift?
Ich denke, das in reinem Swift nicht möglich ist. Zumindest nicht trivial. Ich kenne keine Sprache, die solche Zahlen aus der Box berechnen kann. – dasdom
Ich habe es nicht persönlich verwendet, aber Sie können versuchen, eine Bibliothek wie https://github.com/kirsteins/BigInteger – Kevin
Es kann hässlich sein, aber wenn Sie das Ergebnis jeder Iteration in einer Zeichenfolge statt a speichern UIint, du kannst es multiplizieren, wie es in Papier war. Nicht effizient, die BigInteger-Bibliothek sieht nützlicher aus, aber dies ist auch eine Option. –