В тази програма ще се научите да намирате и показвате факториал на число, използвайки рекурсивна функция в Java.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java методи
- Java рекурсия
Факториалът на положително число n се дава от:
факториал на n (n!) = 1 * 2 * 3 * 4 * … * n
Факториалът на отрицателно число не съществува. А факториалът на 0 е 1.
Ще се научите да намирате факториал на число, използвайки рекурсия в този пример. Посетете тази страница, за да научите как можете да намерите факториал на число с помощта на цикъл.
Пример: Факториал на число, използващо рекурсия
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; ) )
Изход
Факториал на 6 = 720
Първоначално функцията multiplyNumbers()
се извиква от main()
функцията с 6, подадена като аргумент.
Тъй като 6 е по-голямо или равно на 1, 6 се умножава до резултата от multiplyNumbers()
мястото, където се предава 5 (число -1). Тъй като се извиква от същата функция, това е рекурсивно повикване.
При всяко рекурсивно повикване стойността на аргумента num се намалява с 1, докато num достигне по-малко от 1.
Когато стойността на num е по-малка от 1, няма рекурсивно повикване.
И всяко рекурсивно повикване се връща, като ни дава:
6 * 5 * 4 * 3 * 2 * 1 * 1 (за 0) = 720