Selles programmis õpite Kotlini rekursiivse funktsiooni abil leidma ja kuvama numbri faktori.
Positiivse arvu n faktoriaal arvutatakse järgmiselt:
faktori väärtus n (n!) = 1 * 2 * 3 * 4 *… * n
Negatiivse arvu faktoori pole olemas. Ja 0 tegur on 1.
Selles näites leiate rekursiooni abil numbri faktori leidmise. Külastage seda lehte, et teada saada, kuidas leiate arvu faktoori silmuse abil.
Näide: rekursiooni kasutava arvu faktoriaal
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 )
Programmi käivitamisel on väljund järgmine:
Faktor 6 = 720
Esialgu multiplyNumbers()
kutsutakse main()
funktsiooni funktsioonist, mille argumendiks on 6.
Kuna 6 on suurem või võrdne 1, korrutatakse väärtus 6 tulemiga, multiplyNumbers()
kus 5 (num -1) on läbitud. Kuna seda kutsutakse samast funktsioonist, on see rekursiivne kõne.
Igas rekursiivses kõnes vähendatakse argumendi num väärtust 1 võrra, kuni arv jõuab alla 1.
Kui numbri väärtus on väiksem kui 1, rekursiivset kõnet ei toimu.
Iga rekursiivne kõne tagastab meile järgmise teabe:
6 * 5 * 4 * 3 * 2 * 1 * 1 (0 puhul) = 720
Siin on samaväärne Java-kood: Java-programm rekursiooni abil faktori leidmiseks