Как вычислить с помощью корутин факториал в Kotlin?
Есть задача - вычислить факториал в Котлин. С помощью рекурсии решил быстро, но вот как решить это при помощи корутин - не пойму. Подскажите куда копать!
Вот мой код (рекурсия)
fun factorial (n: Int): Int {
if( n!=1 ) {
return n * factorial(n-1);
} else return 1
}
Ответы (1 шт):
Автор решения: Fox Code
→ Ссылка
Нашел решение в Сети. Единственное что изменил - контекст корутин на Dispatchers.IO, чтобы ресурсы задействовать по макс. Вот код, может кому пригодится
suspend fun factCor(num: Int): BigInteger =
withContext(Dispatchers.IO) {
var fact = BigInteger.ONE
for (i in 1..num) {
fact = fact.multiply(BigInteger.valueOf(i.toLong()))
}
fact
}