Foro de elhacker.net

Programación => Java => Mensaje iniciado por: jorgecotrinax en 4 Julio 2021, 19:18 pm



Título: Incremento porcentual Recursivo
Publicado por: jorgecotrinax en 4 Julio 2021, 19:18 pm
necesito ayuda:  :huh: :huh: :huh: :huh: :huh: :huh:
cada semana los accidentes de transito aumentan un 20% , necesito crear un elemento recursivo de eso , sabiendo que la semana 1 hubo 4 accidentes , uso netbeans

Código
  1.     public double Trasporte(int semana){
  2.       double accidentes = 0;          
  3.  
  4.       if(semana == 1){
  5.            accidentes=4;                  
  6.       }else {        
  7.  
  8.            accidentes=(accidentes*0.2)+Trasporte(semana-1);                
  9.       }
  10.       return accidentes;
  11.       }

cunado ejecuto este código me retorna 4 sin importar que numero coloque

me salió pero no se como eliminar el foro asi que dejare la respuesta sin alguien necesita ayuda en el futuro  ;D ;D ;D ;D

Código
  1.    public double Trasporte(int semana){
  2.       double accidentes = 0;          
  3.  
  4.       if(semana == 1){
  5.            accidentes=4;                  
  6.       }else {        
  7.  
  8.            accidentes=accidentes+(Trasporte(semana-1)*0.2)+Trasporte(semana-1);                
  9.       }
  10.       return accidentes;
  11.       }

MOD: Quitado doble post.


Título: Re: Incremento porcentual Recursivo
Publicado por: 3n31ch en 8 Julio 2021, 04:52 am
Hola amigo, te felicito por encontrar tu mismo la respuesta a tu pregunta. De todas formas, el código se puede simplificar un poco:

Código
  1. public double transporte(int semana){
  2.        if(semana == 1) return 4;
  3.        else return transporte(--semana) * 1.2;
  4. }
  5.  

No obstante, tu solución es del todo correcta. Solo he de recomendarte que cuando escribas el nombre de un método lo hagas con la primera letra minúscula (son convenciones, nada importante a estas alturas, pero mas adelante agradecerás la costumbre).

Y ya solo para presumir  :xD, acá tienes otra opción:
Código
  1. public double transporte(int semana){
  2.        return (semana==1)? 4 : transporte(--semana)*1.2;
  3. }
  4.  
(lo lamento, hace mucho que no escribía en el foro, hahaha)