Kotlin-ohjelma lukuarvojen löytämiseksi rekursiolla

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ä

Mielenkiintoisia artikkeleita...