U ovom programu naučit ćete pronaći i prikazati faktorijel broja pomoću rekurzivne funkcije u Kotlinu.
Faktorijal pozitivnog broja n daje:
faktorijel od n (n!) = 1 * 2 * 3 * 4 * … * n
Faktorijal negativnog broja ne postoji. A faktor 0 je 1.
U ovom ćete primjeru naučiti pronaći faktorijel broja pomoću rekurzije. Posjetite ovu stranicu da biste saznali kako možete pronaći faktorijel broja pomoću petlje.
Primjer: Faktorijal broja pomoću rekurzije
fun main(args: Array) ( val num = 6 val factorial = multiplyNumbers(num) println("Factorial of $num = $factorial") ) fun multiplyNumbers(num: Int): Long ( if (num>= 1) return num * multiplyNumbers(num - 1) else return 1 )
Kada pokrenete program, izlaz će biti:
Faktorijal od 6 = 720
U početku multiplyNumbers()
se main()
funkcija poziva s funkcijom 6 koja se prosljeđuje kao argument.
Budući da je 6 veće ili jednako 1, 6 se množi do rezultata multiplyNumbers()
gdje se prolazi 5 (broj -1). Budući da se poziva iz iste funkcije, to je rekurzivni poziv.
U svakom rekurzivnom pozivu vrijednost argumenta num smanjuje se za 1 dok num ne dosegne manje od 1.
Kad je vrijednost num manja od 1, nema rekurzivnog poziva.
I svaki se rekurzivni poziv vraća dajući nam:
6 * 5 * 4 * 3 * 2 * 1 * 1 (za 0) = 720
Evo ekvivalentnog Java koda: Java program za pronalaženje faktora pomoću rekurzije