W tym programie nauczysz się znajdować i wyświetlać silnię liczby za pomocą funkcji rekurencyjnej w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Metody Java
- Rekursja Java
Silnia liczby dodatniej n jest wyrażona wzorem:
silnia n (n!) = 1 * 2 * 3 * 4 *… * n
Silnia liczby ujemnej nie istnieje. Silnia 0 to 1.
W tym przykładzie nauczysz się znajdować silnię liczby za pomocą rekurencji. Odwiedź tę stronę, aby dowiedzieć się, jak znaleźć silnię liczby za pomocą pętli.
Przykład: silnia liczby przy użyciu rekursji
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; ) )
Wynik
Silnia 6 = 720
Początkowo multiplyNumbers()
wywoływana jest main()
funkcja z wartością 6 przekazaną jako argument.
Ponieważ 6 jest większe lub równe 1, 6 jest mnożone do wyniku, multiplyNumbers()
gdzie przekazano 5 (liczba -1). Ponieważ jest wywoływana z tej samej funkcji, jest to wywołanie rekurencyjne.
W każdym wywołaniu rekurencyjnym wartość argumentu num jest zmniejszana o 1, aż liczba osiągnie wartość mniejszą niż 1.
Gdy wartość num jest mniejsza niż 1, nie ma wywołania rekurencyjnego.
A każde rekurencyjne wywołanie zwraca nam:
6 * 5 * 4 * 3 * 2 * 1 * 1 (dla 0) = 720