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

Поділитися
Вставка
  • Опубліковано 14 гру 2024
  • / masterhehegar
    / masterhehegar
    Si no puedes comentar aquí, hazlo en twitter o en facebook...
    Bienvenid@s al Décimo VideoTutorial de la serie "Estructuras De Datos Con Java", hoy abordamos el tema "Factorial de un Número Mediante Recursividad", ojalá y les sea de muchísima utilidad. Comenten, suscríbanse y ya saben si les gusta denle clic a la manita...Quedamos más que al Millonazo...

КОМЕНТАРІ • 15

  • @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 );
    }

  • @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

  • @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

  • @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.

  • @ivanpablo8743
    @ivanpablo8743 3 роки тому

    Podrias subir el codigo fuente

  • @dangelgeek
    @dangelgeek 8 років тому

    very good!

  • @camilocamacholabrador8924
    @camilocamacholabrador8924 2 роки тому

    7:52 no me sale esa parte

  • @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