package metodos;
import java.text.DecimalFormat;
public class MetodosCalculos {
private static double numerador;
private static double denominador;
public double getNumerador(){
return numerador;
}
public void setNumerador(double numerador){
this.numerador= numerador;
}
public double getDenominador(){
return denominador;
}
public void setDenominador(double denominador){
this.denominador= denominador;
}
public static double mdc (double numerador, double denominador){
double numMaior, numMenor;
double resto = 0, resultado;
double mdc=0;
DecimalFormat num=new DecimalFormat("0");
double count=0;
if (numerador>denominador) {
numMaior=numerador; numMenor=denominador;
} else {
numMaior=denominador; numMenor=numerador;
}
do {
resultado=numMaior / numMenor;
resultado=Double.parseDouble(num.format(resultado));
resto = (resultado * numMenor) - numMaior;
if (resto != 0) {
if (resto > numMenor) {
numMaior = resto;
} else {
numMaior = numMenor; numMenor = resto;
}
} else {
mdc = numMenor;
}
count++;
System.out.println(count);
} while (resto != 0);
return mdc;
}
}
Montei esse método para calcular o MDC de dois números distintos. Quando executo ele com números tipo 60 e 22, ele faz tudo normalmente, mas quando uso números maiores, tipo 2000 e 1755, ele demora muito para mostrar o resultado, eu coloquei um contador aí só pra ter uma noção de quanto tempo ele estava demorando.. com números pequenos, o contador chega a 5 no máximo, mas com os grandes ele ultrapassa 5.000.000
Isso é somente baixar performance ou tem algum problema no "do... while"??
Obrigado