U ovom programu naučit ćete pronaći i prikazati faktorijel broja pomoću rekurzivne funkcije u Javi.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:
- Java metode
- Java rekurzija
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
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; ) )
Izlaz
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