Hola,
abajo pongo el código que he usado para resolver el ejercicio.
Sé que funciona perfectamente, pero mirando las soluciones de otros compañeros, me he fijado que lo he resuelto de manera un pelín distinta.
No he visto ha nadie hacer lo mismo que yo, así que, aunque básicamente viene a ser lo mismo y el código funciona, me asalta la duda de si mi solución pudiera ser poco recomendable por algún motivo.
EDITO:Fallo mio! Acabo de darme cuenta de que mi código no funciona, bueno solo funciona si pasas un 2 como segundo parametro que es lo que probé je je. Para números mayores la multiplicación resulta una burrada.....fallo matemático mío
Me refiero a la línea dentro del bucle for
Yo lo que hago es declarar previamente una variable con valor 10 y luego dentro del bucle la multiplico por sí misma tantas veces como nos hayan indicado con el segundo parámetro solicitado (y)
Para ello pongo una línea que a priori parece un poco rara pero que funciona:
potencia=potencia*potencia;
Otros compañeros lo que han hecho es declarar una variable con valor 1 y luego dentro del bucle multiplicarla por 10:
potencia=potencia*10;
A efectos prácticos viene a ser lo mismo, tan solo hay variar ligeramente la condición a cumplir para salir del bucle, puesto que ya partimos con valor 10 en la variable.
Pero no se si quizás resulta un poquito más confuso lo que yo hago y por ello pudiera ser poco recomendable.
Otra cosa distinta es que en lugar de poner un constructor vacío, he optado por un simple comentario indicando que no es necesario. De nuevo no se si esto pudiera considerarse una mala práctica.
Agradeceré cualquier comentario o consejo. Un saludo.
public class MultiplicadorDieces{
//No se necesita constructor
public double multiplicaPorDieces (double x, int y) {
double potencia=10;
for (int i=1; i<y; i++){
potencia=potencia*potencia;
}
return Math.round(potencia*x);
}
}