Ejercicios Java - Recursividad #1 - Factorial y suma de números

Sdílet
Vložit
  • čas přidán 10. 08. 2016
  • - ¿Necesitas que sea tu tutor personal? www.discoduroderoer.es/tutori...
    - Consigue cupones de descuento de mis cursos de udemy: cupones.discoduroderoer.es/#/...
    - Sigue mis próximos eventos: eventos.discoduroderoer.es
    - Visita nuestra web: www.discoduroderoer.es/
    - ¿Necesitas un servidor de calidad? Webempresa te lo da. clientes.webempresa.com/europ...
    - ¿Quieres seguir nuestros trabajos? Visita nuestro github. github.com/DiscoDurodeRoer
    - ¡Sé nuestro patrón! / discoduroderoer
    - Síguenos en las redes sociales:
    - Facebook: goo.gl/JcLshS
    - Twitter: goo.gl/MU2Gbo
    - Google+: goo.gl/8U8aXt
    - CZcams: goo.gl/5vjkGP o suscribete
    - Discord: / discord
    - Twitch: / discoduroderoer_prog
    - Si quieres contactar con nosotros para alguna consulta o enviarnos ejercicios: administrador@discoduroderoer.es
    - Enunciado:
    1. Sumar los números números naturales hasta N (se lo damos nosotros) de forma recursiva.
    2. Factorial de un número.
    - Descarga de los proyectos y enunciados: github.com/DiscoDurodeRoer/ej...
    - Recopilación de descargas de los videos de youtube: www.discoduroderoer.es/descar...

Komentáře • 142

  • @blackfay0
    @blackfay0 Před 3 lety +3

    La verdad es que eres un gran maestro man! haces que los temas complicados sean fáciles, gracias por todo man :D

  • @leonelbarotti3385
    @leonelbarotti3385 Před 4 lety +3

    Increíble, lo entendi muy facilmente, para los que no lo entiendan les recomiendo hacer los ejercicios en una e ir repasando paso por paso

  • @Roen90
    @Roen90 Před 3 lety +1

    Muy bueno, justo me estaba peleando con entender el concepto y con tu vídeo me quedó muy claro

  • @matiasloyola1063
    @matiasloyola1063 Před 3 měsíci

    muchas gracias, tengo examen en unos dias sobre esto y con el video me quedo todo claro

  • @ozjesus
    @ozjesus Před 5 lety +4

    Muchas gracias!!! ahora sí lo entendí!

  • @ProGumas
    @ProGumas Před 7 lety +16

    Tenéis una manera simpática de enseñar andáis primeramente por las ramas, pero al final se entendió y eso se agradece.

  • @davjmz5847
    @davjmz5847 Před 5 lety +1

    eres increíble, eres a la única persona que le he entendido el tema de la recursividad, muchísimas gracias.

  • @bonillaleal
    @bonillaleal Před 5 lety +1

    Gracias compa, me sirvio mucho, saludos.

  • @MrVany183
    @MrVany183 Před 2 lety

    Excelente explicación, muchas gracias!!

  • @cristobalrobertocornejorom8553

    Es muy cierto lo que dice, en relación al primer ejercicio. Cuando llega a la función sumaRecursiva(1), es cuando desencadena todos los demás resultados que han quedado en espera, ya que se empiezan a desbloquear uno por uno, aquí les comparto lo que va sucediendo.
    //sumaRecursiva(9)=9 + sumaRecursiva(8)
    //sumaRecursiva(8)=8 + sumaRecursiva(7)
    //sumaRecursiva(7)=7 + sumaRecursiva(6)
    //sumaRecursiva(6)=6 + sumaRecursiva(5)
    //sumaRecursiva(5)=5 + sumaRecursiva(4)
    //sumaRecursiva(4)=4 + sumaRecursiva(3)
    //sumaRecursiva(3)=3 + sumaRecursiva(2)
    //sumaRecursiva(2)=2 + sumaRecursiva(1) = 3
    Como verán, cuando llega a la sumaRecursiva(1), se llega al primer resultado, y gracias a eso, se conoce que la función de sumaRecursiva(2)= tiene un valor de 3, y así se puede conocer el valor pendiente de la sumaRecursiva(3), y así seguir escalando, hasta el resultado final, por eso lo que finalmente retorna es res = n +sumaRecursiva(n-1) = 45
    //sumaRecursiva(9)=9 + sumaRecursiva(8) = 45
    //sumaRecursiva(8)=8 + sumaRecursiva(7) = 36
    //sumaRecursiva(7)=7 + sumaRecursiva(6) = 28
    //sumaRecursiva(6)=6 + sumaRecursiva(5) = 21
    //sumaRecursiva(5)=5 + sumaRecursiva(4) = 15
    //sumaRecursiva(4)=4 + sumaRecursiva(3) = 10
    //sumaRecursiva(3)=3 + sumaRecursiva(2) = 6
    //sumaRecursiva(2)=2 + sumaRecursiva(1) = 3

  •  Před 3 lety

    Muchas gracias por el vídeo, ahora sí que lo entendí bien :)

  • @alvarogonzalez254
    @alvarogonzalez254 Před 5 lety +3

    excelente gracias a ti pude entender facilmente la recursividad. muchas gracias...otro suscriptor

  • @danielmundoarduino571
    @danielmundoarduino571 Před 3 lety

    Buen video. Así da gusto aprender

  • @miguelangelgutierrez5449

    Buen video, bien explicado

  • @oscarsanchez7390
    @oscarsanchez7390 Před 6 lety +2

    Ayuda mucho, es la misma sintaxis para todos los lenguajes, solo cambia algunas cosas. Gracias.

  • @williammt6435
    @williammt6435 Před 5 lety

    Gracias por el vídeo.

  • @celinaacevedo4302
    @celinaacevedo4302 Před rokem

    lo que necesitaba antes de un parcial, gracias fachita

  • @martapretel2648
    @martapretel2648 Před 4 lety

    Me acabas de salvar la vida.

  • @juabnmonsa2693
    @juabnmonsa2693 Před 5 lety

    Gracias paarce me ayudo demasiado

  • @blurmn9466
    @blurmn9466 Před 4 lety +6

    La mejor manera de aprender la recursividad es usando el debugger y analizar cada caso

  • @nicolasivanoff8647
    @nicolasivanoff8647 Před 6 lety

    que buenos videos que tenes amigo!! geniooo

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety +1

      Gracias! De recursividad tienes unos cuantos para ver!

    • @nicolasivanoff8647
      @nicolasivanoff8647 Před 6 lety +1

      sisi los voy a ver a todos, era muy dificil entender y nadie lo explica muy detallado como ustes!! exitos

  • @israelmunozrivas3312
    @israelmunozrivas3312 Před 6 lety +2

    Muy Buena Explicación, solo creo que return 1;//Significa las veces que regresara el resultado de la variable en si misma.. por ejemplo factorial de 2 con Uno de return= (2) y con Dos de return=(4)..

  • @iamfervgamer
    @iamfervgamer Před 5 lety

    que buen video...!!!!

  • @MinorG97
    @MinorG97 Před 6 lety +1

    buenisimo

  • @TheSk0r
    @TheSk0r Před 7 lety

    Gracias

  • @Luisriverafer
    @Luisriverafer Před 7 lety

    Super!! tu vídeo me ha servido para estudiar éste tema.
    Saludos desde Colombia.

  • @ricardosales1463
    @ricardosales1463 Před 5 lety +2

    Hola,me encanta este canal!!!! es una pasada!!!! ,me pregunto que si podriás hacer el ejercicio del algoritmo de ddijkstra de forma recursiva???

  • @felixgato2854
    @felixgato2854 Před 4 lety

    masomenos le entendi pero podrias explicar somo algo la suma de números posteriores ejemplo;
    el usuario coloca 5 y va sumar los 10 números posteriores con el (como hago eso )

  • @diegodig9
    @diegodig9 Před 5 lety

    Porque cuando entra en el if pones un return 1? Ese 1 no puede ser que altere el resultado final?

  • @pavelmansilla1124
    @pavelmansilla1124 Před 4 lety

    Genial

  • @chunel-44
    @chunel-44 Před 7 lety +5

    Me gusto como enseñaste recursividad.
    Yo hice los problemas antes de ver tú vídeo y los hice de una manera simplificada, los comparto, les puede interesar.
    public static int SumaNaturalesR(int n){
    return (n

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      Gracias por tu aportación!!

    • @jamflorescaceres2773
      @jamflorescaceres2773 Před 5 lety

      Podrias explicarme tu codigo ?, no entendio el "?" Y el "n: n+" como el "1:n*"
      Y del factorial en caso de cero caso base 0? Como lo implementarias?

  • @XarkaTV
    @XarkaTV Před 7 lety +1

    Hola buenas! Me encantaría saber por qué inicializas la variable como n=5 y en la recursividad en vez de poner n pones numero. Muchas gracias de antemano!

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      porque no tienen porque llamarse igual, estoy llamando a una funcion, dentro de la función el valor de n pasa a numero, es como si al principio hiciera numero = n;
      Espero que te sea de ayuda.

    • @XarkaTV
      @XarkaTV Před 7 lety

      Vale muchas gracias! Y si tengo 2 variables los tendría que poner en orden en el main y en el recursivo verdad?

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      Depende de lo que quieras hacer, el orden es un poco indiferente

  • @franckflores.7202
    @franckflores.7202 Před 4 lety

    que guapo!

  • @emanuelfloresleon2521
    @emanuelfloresleon2521 Před 4 lety

    Sabes como hacer para eliminar la primera letra de cada palabra de una cadena usand recursion ?ayuda...

  • @aiitoor10
    @aiitoor10 Před 8 měsíci

    Este video esta bien para alguien que sabe porque básicamente no me estoy enterando de nada parece que soy tu compañero de oficina

  • @sakitex1057
    @sakitex1057 Před 5 lety

    Gracias por el vídeo, una consulta como que ya empiezo entender un poco este tema,pero me es necesario saber si recursividad más o menos es como decir un acumulador?

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 5 lety +1

      realmente es como hacer un for pero sin un for.

    • @sakitex1057
      @sakitex1057 Před 5 lety

      @@DiscoDurodeRoer gracias por la respuesta

  • @user-ql6ld8jh8k
    @user-ql6ld8jh8k Před 3 lety +1

    Joder tio gracias

  • @SamGarciaWR
    @SamGarciaWR Před 2 lety +1

    hola saludos!

  • @jhonatanperez4099
    @jhonatanperez4099 Před 7 lety +1

    hola tengo una duda...
    , entendí que la recursividad, es cuando se llama un método dentro de si, y cuando es implementada, por ejemplo en el factorial de 5, se realizan las restas y cuando esas restas lleguen a 1, osea el caso base, se regresara , esta vez multiplicando hacia atras, y el que devuelve realmente el resultado es el 5?

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      No exactamente, lo hace es llamarse a si mismo y cada vez que se llama es con un parametro diferente, lo que hace es que hasta que no termine esa parte que se llama asi misma no sigue en la parte de la funcion con el parametro 5.
      Espero que te haya ayudado

  • @anjhellohernandez1675
    @anjhellohernandez1675 Před 6 lety

    Muy bueno tu vídeo.. me ayudo mucho..
    Solo tengo una duda, si yo quisiera meter el numero, osea que no este predeterminado en la linea de código, si no que al momento de correr el programa me de una opción de yo poder meter el numero que yo quiera evaluar...

  • @ainhooaa1
    @ainhooaa1 Před 2 lety

    Fan de tu pelo

  • @evets3668
    @evets3668 Před 5 lety +26

    No se le ha entendido completa y correctamente, suena como si estuviera en estado etílico

  • @JoelAguilarCerna
    @JoelAguilarCerna Před 2 lety

    Tengo una consulta, como podría desplegarlo en pantalla de esta forma?
    4=4+3+2+1=10

  • @Dani-cb9hl
    @Dani-cb9hl Před 5 lety

    Si mañana apruebo mi examen, me suscribo y te dejo tu merecidísimo like

  • @enriquehuertahurtado9524

    Alguien sabe como se llama el software donde esta programando esto ?

  • @hectorangellujanlugos3572

    ¿Porque puede dar error si ponemos sumaRecursiva(numero--) 9:16 ?

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety

      +Hector Angel Lujan Lugos porque primero llama a la funcion y el valor del numero no se modifica y es como si hicieras la misma llamada

  • @paulzaratehuaman6003
    @paulzaratehuaman6003 Před 5 lety

    el menos 1 de ahi hace que vuelca si lo saquase sale el error

  • @FernandoReina97
    @FernandoReina97 Před 7 lety

    Estaba buscando un vídeo que explicara bien la recursividad y, joder, este es xD
    Buen vídeo!
    Por cierto, el teclado suena genial. Cuál es? Porque supongo que los switches son blue.

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      Es el razer ultimate balckwidow, aqui tienes el video.
      czcams.com/video/Q-qMsv-Q5wU/video.html

  • @albertz8773
    @albertz8773 Před 4 lety

    Donde estan los manuales?

  • @luisvillada7303
    @luisvillada7303 Před 3 lety

    Porque cuando pido el factorial de 15 el resultado es 2004310016? no debería ser : 1.307.674.368.000 ??
    de hecho muestra el factorial correcto hasta el número 12, de ahí en adelante devuelve resultados diferentes

  • @franciscogajardo8498
    @franciscogajardo8498 Před 2 lety

    esta super bueno pero lo que no entendi es lo del return 1 ; porque si cuando llege a 1 retorna el 1 porque me da la respuesta 45 no se si me explico con esto jaaj :c

  • @thatname4451
    @thatname4451 Před 4 lety

    Nembe, tengo que hacer esa chingadera en negativo, en positivo y aparte también tengo que hacer la serie para ambos casos PRIMER SEMESTRE Y YA ME COLAPSE
    Ayuda
    Por favor ::((

  • @pauolmedo
    @pauolmedo Před 6 lety

    no funciona el link de descarga!

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety

      Si funciona, lo acabo de descargar, pruebalo de nuevo

  • @Izumi2612
    @Izumi2612 Před 6 lety

    tome su like buen hombre... :'v

  • @roselinramirezmendoza4682

    programa que introduzca un número y muestre todas las sumas posibles de ese numero en java (con suma de recursividad)

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety

      Lo que pides se llama backtracking, es algo un pelin mas complicado, es como recursividad avanzada. Veremos que podemos hacer.

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety +2

      Ya tienes ejercicios de backtracking en el canal.

  • @alvarezrodriguezjuandejesu7690

    Sigo con la duda de porque se suma el 1 al final, en la suma de números :(

  • @pedrohidalgobravo1310
    @pedrohidalgobravo1310 Před 6 lety

    ¿como hacer que un programa imprima todas las posibles descomposiciones de un numero natural como suma de números menores que el?

  • @agustincapel1492
    @agustincapel1492 Před 6 lety

    Si en el factorial se pone la condicion del if (numero

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety

      Interesante, me lo apunto!

    • @JASIANOS64
      @JASIANOS64 Před 5 lety

      y te daría 0 porque 0 por cualquier cosa sigue siendo 0, en ese caso mejor una constante = 0

  • @MrRampengu
    @MrRampengu Před 3 lety

    Este es un buen canal pero siempre todos los videos se escuchan bajo o son icreiblemente largos jaja

  • @paulzaratehuaman6003
    @paulzaratehuaman6003 Před 5 lety

    la "otra" se queda esperando, jaja

  • @btohg25
    @btohg25 Před 6 lety

    Hola hermano muy buen vídeo mejor que las explicaciones de mi profesor, solo que me quedo una duda con el primer ejercicio, ya lo transcribí ya incluso le coloqué el Scanner para darle yo mismo el valor, pero no entiendo muy bien el cómo en el main utilizas n y en la función recursiva utiliza numero, no me queda claro la verdad como se relacionan, si pudieras explicar eso te lo agradecería. Un sludo.

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety

      Facil, no tienen k llamarse igual java mira el tipo de la variable no el nombre en si

  • @ElectronGordo
    @ElectronGordo Před 6 lety

    Si no se prueba... puede que funcione, puede que no. Cosas del directo que de no probarse no se comprueban

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 6 lety

      Suena muy Rajoy, ¿funciona algo mal?

    • @ElectronGordo
      @ElectronGordo Před 6 lety

      Mas bien suena a Pablo Iglesias, quejarse por quejarse. Cuestión de procedimiento.

  • @adanlopezvargas9031
    @adanlopezvargas9031 Před 7 lety +1

    no logro entender tanto. pero gracias

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      Coméntanos tus dudas, ¿Qué no entiendes exactamente?
      Estamos para ayudarte

    • @adanlopezvargas9031
      @adanlopezvargas9031 Před 7 lety

      Porque en algunos casos no es necesario el caso baso base. Por ejemplo cuando ago un recursivo que me imprima 20,19,18,17,16,15,14........1. No se si me entienden .. Y no logro entender muy bien

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      ¿Puedes escribirnos tu codigo? Puedes que sea iterativo y no recursivo

  • @Linuxmusica
    @Linuxmusica Před 7 lety

    El factorial no es correcto, en el if falta añadir || numero==0 porque el 0! = 1

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety +1

      Pues tienes razón se me olvido el cero por completo, lo modificaré en el código. ¡Gracias!

  • @Alvaro-wj4ue
    @Alvaro-wj4ue Před 6 lety

    AYUDAAAAAAAAAAAAAAAAAAAAAAAA, Pls
    Implementar una clase para ingresar numeros enteros. Por cada número ingresado, el usuario podrá hacer clic en el botón “Mostrar factorial” y ver el resultado en un TextArea.

  • @alexrey7374
    @alexrey7374 Před 4 lety

    el factorial de 0 no habría que ponerlo también con un numero == 1 || numero == 0

  • @jorgeantonio4208
    @jorgeantonio4208 Před 4 lety +1

    yo te entendí, así que gracias. Para los que no aquí tienen un link
    czcams.com/video/mDuhLwnqKqY/video.html

  • @trigunbash
    @trigunbash Před 7 lety

    no lo se por que ni logró comprender la recursividad

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety +1

      Poco a poco amigo, esto no sé aprende solo viendo vídeos, también necesitas practicarlos y sobre todo paciencia.
      Es normal que te cueste, a mi también me costo en su dia.
      ¡animo!

    • @trigunbash
      @trigunbash Před 7 lety

      DiscoDurodeRoer GRACIAS AMIGO POR TU APOYO saludos desde ECUADOR.

    • @trigunbash
      @trigunbash Před 7 lety

      Se desea programar un método recursivo que ingresado una letra y un número imprimir una cadena con las subsiguientes letras del abecedario separadas por guiones Ejemplo:
      ingreso la letra "r" y el numero "3"
      RESULTADO: r-rs-rst

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 7 lety

      aqui la idea seria usar un char y un numero como parametro

    • @trigunbash
      @trigunbash Před 7 lety

      DiscoDurodeRoer ¿también se podría usar un contador?

  • @EuroUser1
    @EuroUser1 Před 5 lety

    Para sumar necesitas dos números, y tú solo estás pasando un parámetro. No estás sumando. Solo reconstruyendo el parámetro inicial; con un método increíblemente ineficiente.
    Como das el programa por bueno sin probarlo ni una sola vez, todo va de maravilla, claro.

    • @EuroUser1
      @EuroUser1 Před 5 lety

      Ah, no. Haces un sumatorio de 1 a N, donde N es el parámetro. Pues llámalo "sumatorio", no "suma". Y explica lo que estás haciendo, y prueba el programa para que podamos verlo.

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 5 lety +1

      Perdona, se me pasaria en su dia, puedes probarlo tu mismo. Saludos

    • @EuroUser1
      @EuroUser1 Před 5 lety

      @@DiscoDurodeRoer Sí. Pero tú ya tienes el programa en el IDE. Puedes probarlo en uno o dos minutos. Y les ahorras un buen tiempo de copiar código a los 30.000 visitantes que miran el vídeo. Saludos.

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před 5 lety +1

      Tienes razon, lo tendre en cuenta en posteriores, saludos

  • @enzovargas9429
    @enzovargas9429 Před 4 lety

    amigo como te cuesta escribir, es algo increíble, que te pasa?

  • @orsonvazquez3772
    @orsonvazquez3772 Před rokem

    No se dejen engañar por gente que solo graba videos por grabar. El tipo no es ingeniero en software ni tiene una formación universitaria es evidente.

    • @DiscoDurodeRoer
      @DiscoDurodeRoer  Před rokem +1

      ¿Porque debería tener formación universitaria? ¿Eso haría que fuera mejor? Madre mía

  • @MADE656
    @MADE656 Před 4 lety

    primero plantea el ejercicio luego lo resuelves, así parece que estas improvisando y no se sabe a donde vas.

  • @gatomontesroseIII
    @gatomontesroseIII Před rokem

    no te entendi un crj

  • @heikelandres4941
    @heikelandres4941 Před 5 lety

    Tio que mal explicas, este es el primer video que veo tuyo y creo que no miro ningun otro...

  • @badtgm2782
    @badtgm2782 Před 4 lety

    este tema me super caga

  • @pedropg216
    @pedropg216 Před 4 lety

    hablas mucho y da la sensación de que no tienes ni idea

  • @YeitrontYT
    @YeitrontYT Před rokem +1

    comparto la suma recursiva en java logre comprender algunos puntos
    /**
    *
    * @author YEISON
    */
    public class SumaDeNumero {
    public static void main(String[] args) {
    //numero a sumar recursivamente
    System.out.println(sumaRecursiva(5));
    }
    public static int sumaRecursiva(int num) {
    if (num == 1) {
    return 1;
    } else {
    return num+sumaRecursiva(num - 1);
    }
    }
    }

    • @YeitrontYT
      @YeitrontYT Před rokem

      parcero la memoria no quedaría pesada usando una variable extra? o no necesariamente