Програма Java для пошуку факторіалу числа за допомогою рекурсії

У цій програмі ви навчитеся знаходити та відображати факторіал числа за допомогою рекурсивної функції в 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

Цікаві статті...