English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Java Map colección

Java Set colección

Java Entrada/Salida (I/O)

Java Reader/Writer

Otras temáticas de Java

Programa Java que usa recursión para encontrar el factorial de un número

Java 实例大全

En este programa, aprenderás a usar funciones recursivas en Java para encontrar y mostrar el factorial de un número.

El factorial de un número positivo n se da por la siguiente fórmula:

factorial de n (n!) = 1 * 2 * 3 * 4 * ... * n

El factorial de números negativos no existe. El factorial de 0 es1。

En este ejemplo, aprenderás a usar la recursión para encontrar el factorial de un número. Visita esta página para saber cómoUsar bucle para encontrar el factorial de un número

Ejemplo: calcular el factorial recursivamente

public class Factorial {
    public static void main(String[] args) {
        int num = 6;
        long factorial = multiplyNumbers(num);
        System.out.println(""} + num + "的阶乘 = " + factorial);
    }
    public static long multiplyNumbers(int num
    {
        if (num >= 1)
            return num * multiplyNumbers(num - 1);
        else
            return 1;
    }
}

运行该程序时,输出为:

 6的阶乘 = 720

最初,从main()函数中调用multiplyNumbers(),并以6作为参数传递。

因为6大于或等于1,所以6乘以了multiplyNumbers()的结果,其中传递了5 (num -1)。因为它是从同一个函数中调用的,所以它是一个递归调用。

在每次递归调用中,参数num的值减少1,直到num小于1。

当值num小于1时,将没有递归调用。

每个递归调用都会返回给我们:

6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720

Java 实例大全