Usa el algoritmo de Euclides para encontrar el máximo común divisor (mcd) de dos números a y b. Se basa en que si a > b, entonces el mcd de a y b es el mismo que de b y a – b. Si b > a, será el mismo que de a y b – a. Esta regla se debe aplicar sucesivamente hasta que a sea igual a b, y entonces se cumplirá que mcd = a = b.
Para plantearnos el problema estudiamos:
- Casos bases. Sólo hay uno: a y b coinciden. Claramente devolvemos a (o b)
- Casos recursivos. Hay dos: a > b y a < b. En cada caso haremos la llamada recursiva según la definición dada más arriba
private static int mcd(int a, int b) {
int mcd = 0;
if (a == b) {
mcd=a;
} else if (a > b) {
mcd=mcd(a-b,b);
} else {
mcd=mcd(a,b-a);
}
return mcd;
}

No hay comentarios:
Publicar un comentario