Программа Kotlin для поиска факториала числа

В этой программе вы научитесь находить факториал числа с помощью цикла for и while в Kotlin. Вы также научитесь использовать диапазоны для решения этой проблемы.

Факториал положительного числа n определяется как:

 факториал n (n!) = 1 * 2 * 3 * 4 *… * n 

Пример 1: найти факториал числа с помощью цикла 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") )

Когда вы запустите программу, вывод будет:

 Факториал 10 = 3628800

В этой программе мы использовали цикл for для перебора всех чисел от 1 до заданного числа num (10), а произведение каждого числа на число сохраняется в переменном факториале.

В отличие от Java, в Kotlin вы можете использовать range ( 1… num) и оператор in для циклического перебора чисел от 1 до num.

Кроме того, мы использовали long вместо int для хранения больших результатов факториала.

Однако он все еще недостаточно велик, чтобы хранить значение больших чисел (скажем, 100). Для результатов, которые нельзя сохранить в длинной переменной, мы используем BigIntegerпеременную, объявленную в java.mathбиблиотеке.

Вот эквивалентный код Java: Программа Java для поиска факториала числа.

Пример 2: найти факториал числа с помощью 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") )

Когда вы запустите программу, вывод будет:

 Факториал 30 = 205891132094649000000000000000000000000000000

Здесь, вместо того long, мы используем BigIntegerпеременный факториал.

Поскольку, *нельзя использовать с BigInteger, мы вместо этого используем multiply()для продукта. Кроме того, BigIntegerдля умножения необходимо указать число .

Точно так же мы можем использовать цикл while для решения этой проблемы.

Пример 3: найти факториал числа с помощью цикла 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") )

Когда вы запустите программу, вывод будет:

 Факториал 5 = 120

В приведенной выше программе, в отличие от цикла for, мы должны увеличивать значение i внутри тела цикла.

Хотя обе программы технически правильны, в этом случае лучше использовать цикл for. Это потому, что количество итераций (до числа) известно.

Посетите эту страницу, чтобы узнать, как найти факториал числа с помощью рекурсии.

Интересные статьи...