In dit programma leer je de faculteit van een getal te vinden en weer te geven met behulp van een recursieve functie in Java.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:
- Java-methoden
- Java-recursie
De faculteit van een positief getal n wordt gegeven door:
faculteit van n (n!) = 1 * 2 * 3 * 4 *… * n
De faculteit van een negatief getal bestaat niet. En de faculteit van 0 is 1.
In dit voorbeeld leer je de faculteit van een getal te vinden met behulp van recursie. Bezoek deze pagina om te leren hoe u de faculteit van een getal kunt vinden met behulp van lus.
Voorbeeld: faculteit van een getal met behulp van recursie
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; ) )
Uitvoer
Factoriaal van 6 = 720
In eerste instantie wordt de multiplyNumbers()
aangeroepen vanuit de main()
functie met 6 doorgegeven als argument.
Omdat 6 groter is dan of gelijk is aan 1, wordt 6 vermenigvuldigd met het resultaat multiplyNumbers()
waarvan 5 (num -1) wordt doorgegeven. Omdat het wordt aangeroepen vanuit dezelfde functie, is het een recursieve aanroep.
Bij elke recursieve aanroep wordt de waarde van argument num verlaagd met 1 totdat num minder dan 1 bereikt.
Als de waarde van num kleiner is dan 1, is er geen recursieve aanroep.
En elke recursieve aanroep keert terug en geeft ons:
6 * 5 * 4 * 3 * 2 * 1 * 1 (voor 0) = 720