Autor Tema: CU00644B Objetos del mundo real y abstractos Java iteración y recursión  (Leído 2972 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Aquí entrego el ejercicio con dos métodos de calculo, iterativo y recursión, este segundo da bien el resultado pero no sé si es lo que se considraria recursión pues modifico el parametro boolean pasado en un momento dado.

Clase MultiplicadorDieces
Código: [Seleccionar]
public class MultiplicadorDieces{
   
    public MultiplicadorDieces(){
        //Nada que inicializar
    }
   
    //Metodo 1 iterativo multiplicar dieces
    public double multiplicarPorDiez(double valorNumero, int numeroCeros){
        int dieces=1;
        double resultado=1;
       
        for (int i=1;i<=numeroCeros;i++){
           dieces=dieces*10;}
       
        resultado=valorNumero * dieces;
        return resultado;
    }
   
    // Método recursión
    public double recursionMultiplicar(double valorNumero, int numeroCeros){
        if (numeroCeros==0){return valorNumero;
        } else if (numeroCeros==1){ return valorNumero *10;
        } else { return valorNumero * recursionMultiplicar(10, numeroCeros-1);}
        }
 
}
« Última modificación: 20 de Marzo 2015, 08:36 por Alex Rodríguez »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Sugerencias? comentarios ? :) quizá usé variables de más y se podia simplificar más? o no afecta.

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola Lorenzo

Ejercicio correcto.

No es malo usar muchas variables si para tí clarifica el código. Aún así, te comprimo el método multiplicarPorDiez

Código: [Seleccionar]
    public double multiplicarPorDiez(double valorNumero, int numeroCeros){
        int dieces=1;
       
        for (int i=1;i<=numeroCeros;i++){
           dieces=dieces*10;}
       
        return valorNumero * dieces;
    }

Y en el método recursionMultiplicar le quito la condición else if y funciona igual.

Código: [Seleccionar]
    public double recursionMultiplicar(double valorNumero, int numeroCeros){

        if (numeroCeros==0){return valorNumero;
        } else { return valorNumero * recursionMultiplicar(10, numeroCeros-1);}
    }

Saludos

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Vale genial, resultado no hace falta pq solo lo retornamos no hacemos nada con esa variable.

Y lo otro era una linea redundante, genial, gracias Toni lo tendré presente en el futuro ;)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".