Програма Котліна для пошуку множника числа

У цій програмі ви навчитеся знаходити факторіал числа, використовуючи цикл 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), і добуток кожного числа до num зберігається у змінному факторіалі.

На відміну від Java, у Kotlin ви можете використовувати діапазони ( 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 = 20589113209464900000000000000000000000000000000

Тут замість 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. Це тому, що відома кількість ітерацій (до числа).

Відвідайте цю сторінку, щоб навчитися знаходити факторіал числа за допомогою рекурсії.

Цікаві статті...