#include using namespace std; /* ESTE ES EL EJERCICIO RACI1, QUE HA PASADO EL JUEGO DE PRUEBAS */ struct Racional { int num, den; }; // Funcio que calcula el MCD de dos nombres int mcd(int x, int y) { if (y == 0) return x; return mcd(y, x%y); } // Funcio que retorna un racional normalitzat Racional racional(int n, int d) { Racional res; res.num = n/mcd(n,d); res.den = d/mcd(n,d); if (res.den < 0) { res.num = -res.num; res.den = -res.den; } return res; } /* ESTE ES EL NUEVO, APROVECHANDO EL ANTERIOR PARA NORMALIZAR LOS RACIONALES */ // Accio que llegeix un racional void llegeix_racional(Racional& r, bool& final) { int x, y; if (cin >> x >> y) r = racional(x,y); else final = true; } // Accio que escriu un racional void escriu_racional(const Racional& r) { cout << r.num; if (r.den != 1) cout << "/" << r.den; }