Sto facendo fuction che calcola fattoriale in rapido. Ti piace questaCome calcolare il 21! (21 fattoriale) in rapido?
func factorial(factorialNumber: UInt64) -> UInt64 {
if factorialNumber == 0 {
return 1
} else {
return factorialNumber * factorial(factorialNumber - 1)
}
}
let x = factorial(20)
questo fuction può calcolare fino a 20.
credo (21) il valore fattoriale più grande di UINT64_MAX.
quindi Come calcolare il 21! (21 fattoriale) in rapido?
credo che questo non è possibile in puro Swift. Almeno non banale. Non conosco nessun linguaggio in grado di calcolare tali numeri fuori dalla scatola. – dasdom
Non l'ho usato personalmente, ma puoi provare una libreria come https://github.com/kirsteins/BigInteger – Kevin
Potrebbe essere brutto, ma se memorizzi il risultato di ogni iterazione in una stringa invece di un UIint, puoi moltiplicarlo come se fosse in carta. Non efficiente, la libreria BigInteger sembra più utile, ma anche questa è un'opzione. –