Котлинов програм за проналажење факторијела броја

У овом програму научићете да пронађете факторијел броја који користи петљу фор и вхиле у Котлину. Такође ћете научити да користите домете за решавање овог проблема.

Факторијал позитивног броја н дат је са:

 факторијел од н (н!) = 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

У горњем програму, за разлику од фор петље, морамо повећати вредност и унутар тела петље.

Иако су оба програма технички исправна, у овом случају је боље користити фор лооп. То је зато што је познат број понављања (до броја).

Посетите ову страницу да бисте научили како пронаћи факторијел броја помоћу рекурзије.

Занимљиви Чланци...