Tässä ohjelmassa opit etsimään ja näyttämään luvun faktorialin rekursiivisen funktion avulla Kotlinissa.
Positiivisen luvun n kerroin saadaan:
kerroin n (n!) = 1 * 2 * 3 * 4 *… * n
Negatiivisen luvun kerrointa ei ole olemassa. Ja 0: n kerroin on 1.
Opit etsimään luvun faktoria rekursiolla tässä esimerkissä. Käy tältä sivulta saadaksesi selville, kuinka löydät luvun faktorin silmukan avulla.
Esimerkki: Rekursiota käyttävän luvun kerroin
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 )
Kun suoritat ohjelmaa, tulos on:
Kerroin 6 = 720
Aluksi multiplyNumbers()
kutsutaan main()
funktiosta, jonka argumenttina on 6.
Koska 6 on suurempi tai yhtä suuri kuin 1, 6 kerrotaan tulokseen, multiplyNumbers()
jossa 5 (num -1) välitetään. Koska sitä kutsutaan samasta toiminnosta, se on rekursiivinen puhelu.
Jokaisessa rekursiivisessa puhelussa argumentin num arvoa pienennetään yhdellä, kunnes num saavuttaa alle 1.
Kun num-arvo on alle 1, rekursiivista puhelua ei ole.
Ja jokainen rekursiivinen puhelu palaa ja antaa meille:
6 * 5 * 4 * 3 * 2 * 1 * 1 (0: lle) = 720
Tässä on vastaava Java-koodi: Java-ohjelma faktorin löytämiseksi rekursiota käyttämällä