Kotlina programma, lai atrastu skaitļa faktori

Šajā programmā jūs iemācīsities atrast skaitļa faktorialu, izmantojot Kotlin ciklu un kamēr. Jūs arī iemācīsities izmantot diapazonus, lai atrisinātu šo problēmu.

Pozitīvā skaitļa n koeficientu izsaka:

 n (n!) faktoriāls = 1 * 2 * 3 * 4 *… * n 

1. piemērs: Atrodiet skaitļa koeficientu, izmantojot cilpu

 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") )

Palaidot programmu, izeja būs:

 Faktoriskais koeficients 10 = 3628800

Šajā programmā mēs esam izmantojuši cilpu, lai apietu visus skaitļus no 1 līdz dotajam skaitlim num (10), un katra skaitļa līdz skaitlim reizinājums tiek saglabāts mainīgā faktoriālā.

Atšķirībā no Java, Kotlinā jūs varat izmantot diapazonus ( 1… num) un operatorā, lai ciklētu skaitļus no 1 līdz num.

Turklāt mēs esam izmantojuši ilgu laiku, nevis int, lai saglabātu lielus faktoriālos rezultātus.

Tomēr tas joprojām nav pietiekami liels, lai saglabātu lielāku skaitļu (teiksim 100) vērtību. Rezultātiem, kurus nevar saglabāt garā mainīgajā, mēs izmantojam bibliotēkā BigIntegerdeklarēto mainīgo java.math.

Šeit ir ekvivalents Java kods: Java programma, lai atrastu skaitļa faktori.

2. piemērs: Atrodiet skaitļa koeficientu, izmantojot 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") )

Palaidot programmu, izeja būs:

 Faktoriskais koeficients 30 = 205891132094649000000000000000000000000000000000000

Šeit longmēs izmantojam BigIntegermainīgo faktoriālu.

Tā kā *nevar izmantot kopā BigInteger, mēs tā vietā izmantojam multiply()produktam. Arī BigIntegerreizināšanai ir jānodod num .

Tāpat šīs problēmas risināšanai mēs varam izmantot arī kādu laiku.

3. piemērs: Atrodiet skaitļa faktori, izmantojot while ciklu

 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") )

Palaidot programmu, izeja būs:

 Faktoriskais koeficients 5 = 120

Iepriekš minētajā programmā, atšķirībā no for for loop, mums ir jāpalielina i vērtība cilpas korpusā.

Lai gan abas programmas ir tehniski pareizas, šajā gadījumā labāk izmantot cilpu. Tas ir tāpēc, ka ir zināms atkārtojumu skaits (līdz skaitļiem).

Apmeklējiet šo lapu, lai iemācītos atrast skaitļa faktoriālu, izmantojot rekursiju.

Interesanti raksti...