/* AUTOR: d3n3k4 (Dnk!)
* WEB: http://d3n3k4.blogspot.com/
* FECHA: 28/NOV/2010
* DESCRIPCION:
* - Clase para trabajar con quebrados (suma) incluido:
* - mcd: Calcula el maximo comun divisor.
* - mcm: Calcula el minimo comun multiplo.
* - reducir: Simplifica el quebrado.
* - En un futuro se iran aƱadiendo mas opciones, si quieres mantenerte
* informado no dudes en visitar mi blog.
* - Esta contenido la clase main, con un ejemplo de uso de la clase.
* NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
* mantenga los creditos y comentarios del autor.
*/
import java.util.Scanner;
public class opQuebrados {
public static int[] leeQuebrado() {
int[] quebrado = new int[2];
Scanner entrada = new Scanner(System.in);
quebrado[0] = entrada.nextInt();
quebrado[1] = entrada.nextInt();
return quebrado;
}
public static String escribeQuebrado(int[] q_Original) {
String cadQuebrado = q_Original[0]+"/"+q_Original[1];
return cadQuebrado;
}
public static int mcd(int a,int b) {
int aux;
while (b != 0) {
aux = b;
b = a%b;
a = aux;
}
return a;
}
public static int mcm(int a,int b) {
int min = (a*b)/mcd(a,b);
return min;
}
public static int[] reducir(int[] q) {
int[] qReducido = new int[2];
int max = mcd(q[0],q[1]);;
qReducido[0] = q[0]/max;
qReducido[1] = q[1]/max;
return qReducido;
}
public static int[] sumar(int[] q1, int[] q2 ) {
int[] qSumado = new int[2];
int min = mcm(q1[1],q2[1]);
qSumado[1]=min;
qSumado[0]=q1[0]*(min/q1[1])+q2[0]*(min/q2[1]);
return qSumado;
}
public static void main(String[] args) {
int[] quebrado1 = new int[2];
int[] quebrado2 = new int[2];
int[] resultado = new int[2];
int[] reducido = new int[2];
System.out.print("1er Qebrado: ");
quebrado1 = leeQuebrado();
System.out.print("2do Qebrado: ");
quebrado2 = leeQuebrado();
resultado = sumar(quebrado1,quebrado2);
reducido = reducir(resultado);
System.out.print(escribeQuebrado(quebrado1) + " + " + escribeQuebrado(quebrado2) + " = " + escribeQuebrado(resultado));
if (resultado[1] != reducido[1]) {
System.out.println(" = " + escribeQuebrado(reducido));
}
}
}