Програма 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

Интересни статии...