У овом програму научићете да пронађете факторијел броја који користи петљу фор и вхиле у Котлину. Такође ћете научити да користите домете за решавање овог проблема.
Факторијал позитивног броја н дат је са:
факторијел од н (н!) = 1 * 2 * 3 * 4 * … * н
Пример 1: Пронађите факторијел броја помоћу петље фор
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
У овом програму користили смо фор петљу за петљу кроз све бројеве између 1 и датог броја нум (10), а умножак сваког броја док се нум чува у променљивом факторијелу.
За разлику од Јаве, у Котлину можете да користите опсеге ( 1… num
) и оператор да бисте премотавали бројеве између 1 и нум.
Такође, користили смо лонг уместо инт за чување великих резултата факторијела.
Међутим, још увек није довољно велик за чување вредности већих бројева (рецимо 100). За резултате који се не могу сачувати у дугој променљивој користимо BigInteger
променљиву декларисану у java.math
библиотеци.
Ево еквивалентног Јава кода: Јава програм за проналажење факторијела броја.
Пример 2: Пронађите факторијел броја помоћу БигИнтегер-а
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
за множење.
Исто тако, такође можемо користити вхиле петљу за решавање овог проблема.
Пример 3: Пронађите факторијел броја помоћу петље вхиле
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
У горњем програму, за разлику од фор петље, морамо повећати вредност и унутар тела петље.
Иако су оба програма технички исправна, у овом случају је боље користити фор лооп. То је зато што је познат број понављања (до броја).
Посетите ову страницу да бисте научили како пронаћи факторијел броја помоћу рекурзије.