Neste programa, você aprenderá a encontrar o fatorial de um número usando o loop for e while no Kotlin. Você também aprenderá a usar intervalos para resolver esse problema.
O fatorial de um número positivo n é dado por:
fatorial de n (n!) = 1 * 2 * 3 * 4 * … * n
Exemplo 1: Encontre o fatorial de um número usando o loop for
fun main(args: Array) ( val num = 10 var factorial: Long = 1 for (i in 1… num) ( // factorial = factorial * i; factorial *= i.toLong() ) println("Factorial of $num = $factorial") )
Quando você executa o programa, a saída será:
Fatorial de 10 = 3628800
Neste programa, usamos o loop for para percorrer todos os números entre 1 e o número dado num (10), e o produto de cada número até num é armazenado em um fatorial de variável.
Ao contrário do Java, no Kotlin, você pode usar intervalos ( 1… num
) e operador in para percorrer os números entre 1 e num
Além disso, usamos long em vez de int para armazenar grandes resultados de fatorial.
No entanto, ainda não é grande o suficiente para armazenar o valor de números maiores (digamos 100). Para resultados que não podem ser armazenados em uma variável longa, usamos a BigInteger
variável declarada na java.math
biblioteca.
Aqui está o código Java equivalente: Programa Java para localizar o fatorial de um número.
Exemplo 2: Encontre o fatorial de um número usando BigInteger
import java.math.BigInteger fun main(args: Array) ( val num = 30 var factorial = BigInteger.ONE for (i in 1… num) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(num.toLong())) ) println("Factorial of $num = $factorial") )
Quando você executa o programa, a saída será:
Fatorial de 30 = 205891132094649000000000000000000000000000000
Aqui, em vez de long
, usamos BigInteger
fatorial de variável.
Uma vez que, *
não pode ser usado com BigInteger
, em vez disso usamos multiply()
para o produto. Além disso, num deve ser convertido para BigInteger
para multiplicação.
Da mesma forma, também podemos usar um loop while para resolver esse problema.
Exemplo 3: Encontre o fatorial de um número usando o loop while
fun main(args: Array) ( val num = 5 var i = 1 var factorial: Long = 1 while (i <= num) ( factorial *= i.toLong() i++ ) println("Factorial of $num = $factorial") )
Quando você executa o programa, a saída será:
Fatorial de 5 = 120
No programa acima, ao contrário de um loop for, temos que incrementar o valor de i dentro do corpo do loop.
Embora ambos os programas sejam tecnicamente corretos, é melhor usar o loop for neste caso. É porque o número da iteração (até num) é conhecido.
Visite esta página para aprender a encontrar o fatorial de um número usando recursão.