Selles programmis õpite Java rekursiivse funktsiooni abil numbri faktoriaali leidma ja kuvama.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:
- Java meetodid
- Java rekursioon
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
public class Factorial ( public static void main(String() args) ( int num = 6; long factorial = multiplyNumbers(num); System.out.println("Factorial of " + num + " = " + factorial); ) public static long multiplyNumbers(int num) ( if (num>= 1) return num * multiplyNumbers(num - 1); else return 1; ) )
Väljund
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