Autor Tema: practica CU00644B potencia de diez recursiva java  (Leído 3712 veces)

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
practica CU00644B potencia de diez recursiva java
« en: 02 de Septiembre 2014, 12:35 »
Pensé en muchas formas de como tratar de realizar esta practica, pero lamentablemente tuve que utiliza el for del ejemplo y modificarlo para que me diera resultado.

todo funciona bien con cualquier numero (me cumple el mandato), pero tuve que hacer muchas pruebas para ver si comprendía un poco el for , e incluso invertigar en google como funciona, el punto es que no lo he absorbido del 100 y que con:

public int potenciaConRecursion (int m, int n) {
        if (n==0) { return 1;
        } else  { return m * potenciaConRecursion (m, n-1) ; }

no es posible realizar el ejercicio, ya que esto es un bucle(loop) hasta que "n" llegue a "0".

bueno aquí mi código:

MultiplicadorDieces:

Código: [Seleccionar]
//clase
public class MultiplicadorDieces {

    //constructor
    public MultiplicadorDieces () {
        //vacio
    }

    //metodo
    public double multiplicarPorDieces (double numero, int dieces) {
        int resultado = 1;
        for (int i=1; i<=dieces; i++) {
            resultado = resultado * 10;           
        }
        numero = numero * resultado;
        return numero;
    }
}

favor verificar, de antemano gracias!!!!.
« Última modificación: 02 de Septiembre 2014, 17:57 por Ogramar »
public lenguajePoderoso () {
          java = "poder";
       }

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:practica CU00644B
« Respuesta #1 en: 02 de Septiembre 2014, 12:58 »
aquí dejo mi primera idea para esta practica, pero la descarte por que tenia un limite y era muy largo a comparación de lo requerido, pero funciona mas o menos... (la hice para ver que tal quedaba lo que había planeado...).

MultiplicadorDieces2:

Código: [Seleccionar]
//clase
public class MultiplicadorDieces2 {

    //constructor
    public MultiplicadorDieces2 () {
        //vacio
    }

    //metodo
    public double multiplicarPorDieces (double numero, int dieces) {
        double resultado = 0;
        if (dieces == 1) {
            resultado = numero *10;
        }else if (dieces == 2) {
            resultado = numero *100;
        }else if (dieces == 3) {
            resultado = numero *1000;
        }else if (dieces == 4) {
            resultado = numero *10000;
        } else if (dieces == 5) {
            resultado = numero *100000;
        }else if (dieces == 6) {
            resultado = numero *1000000;
        }else {
            System.out.println ("Esta operacion solo soporta multiplo de dieces hasta un maximo de 6 ceros!.");
        }
        return resultado;
    }
}
public lenguajePoderoso () {
          java = "poder";
       }

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:practica CU00644B potencia de diez recursiva java
« Respuesta #2 en: 02 de Septiembre 2014, 17:56 »
Hola, tu primera idea hiciste bien en descartarla, pues como programador debes pensar en resolver todos los casos posibles (o al menos el mayor número de casos posibles) y no sólo unos pocos casos, que además supone ir uno por uno, esto en general debes tratar de evitarlo.

El ejercicio está bien resuelto. Hacerlo por recursión también es posible, pero la recursión es un tanto compleja de entender por lo tanto mejor dejarla para más adelante.

Aquí te dejo el método recursivo pero te aconsejo que no te líes con esto:

Código: [Seleccionar]
    public double multiplicarPorDiecesRecursivo (double numero, int dieces) {
       
        if (dieces ==1) { return numero*10;}
        else { return 10*multiplicarPorDiecesRecursivo(numero, dieces-1);}
    }

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:practica CU00644B potencia de diez recursiva java
« Respuesta #3 en: 03 de Septiembre 2014, 01:51 »
Gracias Ogramar, pues seguiré avanzando...
public lenguajePoderoso () {
          java = "poder";
       }

 

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".