10 - Factorial de un Número Mediante Recursividad (EDDJava)

Поделиться
HTML-код
  • Опубликовано: 18 янв 2025

Комментарии • 15

  • @GhostlyTutoriales
    @GhostlyTutoriales 3 года назад +2

    Ay mi madre pero que hermosa lógica la del método con recursividad, no se me habría ocurrido, he hecho ese ejercicio varias veces pero con ciclos

  • @rodrigomanya321
    @rodrigomanya321 3 года назад

    Muy claro el video, solo un comentario sobre el metodo recursivo. No es necesario hacer los else cuando queremos controlar el caso base ya que la idea es retornar y cortar la recursividad.
    public static int factorialRecursivo(int n) {

    if(n < 0) {
    return 0;
    }
    if(n == 0) {
    return 1;
    }
    //Dominio (problema -1 )
    return n * factorialRecursivo(n -1 );
    }

  • @potosi2162
    @potosi2162 6 лет назад

    Que forma de explicar ¡¡... Excelente

  • @isabel8914
    @isabel8914 4 года назад

    Muchas gracias me sirvio de mucho!!!

  • @karimlopez7139
    @karimlopez7139 3 года назад

    Hola, y como harias para que la salida sea por ejemplo 4! = 1 * 2 *3 *4 = 24

  • @ivanpablo8743
    @ivanpablo8743 3 года назад

    Podrias subir el codigo fuente

  • @carloshernandez5172
    @carloshernandez5172 9 лет назад +2

    Que tal Profesor MasterHeHeGar en la recursividad de un método dentro de otro método en donde se va guardando el acumulado de la multiplicación n * n-1
    saludos.

  • @camilocamacholabrador8924
    @camilocamacholabrador8924 2 года назад

    7:52 no me sale esa parte

  • @dangelgeek
    @dangelgeek 8 лет назад

    very good!

  • @chavezJRfan1998
    @chavezJRfan1998 8 лет назад +1

    Me quedaron dudas: con la recursividad el método va quedándose con el resultado de memoria sin tener que guardarlo en una variable?? Es decir,,,retorna la multiplicacion de el (n) * (el factorial de n - 1),,, ¿pero como rayos sabe cual es el factorial de n - 1? No entiendo :/

    • @andersonmontano9468
      @andersonmontano9468 7 лет назад +1

      esa fue mi duda tambien si pueden responderla me ayudaria

    • @davidcol0125
      @davidcol0125 6 лет назад +4

      Lo que pasa es que va acumulando las llamadas al metodo como en una pila, osea que hasta que el llega al caso base, de ahi para arriba va ejecutando todas las llamadas recurrentes al metodo. Es decir, el metodo nunca guarda el acumulado en si, solamente retorna el valor de la multiplicacion y es ese valor que se pasa de ahi para arriba en la otras llamadas al metodo, osea por ejemplo cuando llega a n == 0, el metodo retorna 1, luego ese valor 1 se introduce como parametro en la llamada anterior del metodo, ahora se multiplica por 1 x loQueRetornoElMedodo que es 1, osea 1 x 1, luego el resultado se devuelve en parametro a la otra llamada que es 2 * loQueRetornaElMetodo que ahora es 1, osea 2 x 1, asi sucesivamente se devuelve el valor para arriba hasta terminar en la primera llamada que hubo que era del 4 * factorial(4-1) que ahi el metodo retornaria el valor respectivo osea 6 y lo multiplica por el 4.

    • @sociedaddeagua5040
      @sociedaddeagua5040 4 года назад

      @@davidcol0125 Esta logica asusta, lo comprobe coml dices y me enrollo bastante pero es lógico, no me hubiera imaginado que funcione de esa manera.
      Muchas gracias colega de seguro eres un gran programador ahora.

    • @retroblackztar
      @retroblackztar 3 года назад +1

      @@sociedaddeagua5040 Ya ha pasado algo de tiempo pero por ejemplo factorial de 5 con recursividad java lo hace de esta manera:
      5*(4*(3*(2*(1*1))))
      5*(4*(3*(2*1)))
      5*(4*(3*2))
      5*(4*6)
      5*24
      120

  • @Gkedss
    @Gkedss 2 года назад

    Aquí mi aporte por si alguien llega a tener dudas o quisiera pedir los datos al usuario.
    import javax.swing.JOptionPane;
    public class Principal {
    public static void main(String[] args) {
    // Ejemplo de fatcorial de un número
    // 4!=1*2*3*4=24

    Principal Recursividad=new Principal(); // creo un objeto
    Principal Recursividad1=new Principal(); //creo un segundo objeto para la segunda forma de impresión
    int num=(Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese n número")));
    //creo una variable que almacena el número que quiero encontrar su factorial
    JOptionPane.showMessageDialog(null, "El factorial del número "+num +" es "+Recursividad.factorialRecursivo(num));
    //muestro el resultado de el método factorialRecursivo
    System.out.println("
    "); //salto de linea
    System.out.println("El factorial de 5 es "+Recursividad1.factorialRecursivo(5));
    //muestro el resultado del factorial asignandole un valor por defecto

    }
    //Creación del método factorial de forma recursiva
    public int factorialRecursivo(int n){ // creación del método factorial recursivo que recibe parametros de tipo entero n

    if(n