codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
// Suma de fracciones // Agosto de 2009 Con Clase, Salvador Pozo #include <iostream> using namespace std; struct fraccion { int num; int den; }; fraccion Simplificar(fraccion); fraccion Sumar(fraccion, fraccion); int MCD(int, int); int main() { fraccion f, g, s; f.num=10; f.den=3; g.num=5; g.den=6; s = Sumar(f, g); cout << "Sumar(" << f.num << "/" << f.den << "," << g.num << "/" << g.den << ") = "; cout << s.num << "/" << s.den << endl; return 0; } fraccion Simplificar(fraccion f) { int mcd = MCD(f.num,f.den); f.num /= mcd; f.den /= mcd; return f; } int MCD(int n1, int n2) { // Buscar los factores primos que dividen tanto a n1 como a n2 int resultado = 1; // El 1 siempre es un CD int factor = 2; // Empezamos en 2 while(factor <= n1 || factor <= n2) { while(!(n1 % factor) && !(n2 % factor)) { resultado *= factor; n1 /= factor; n2 /= factor; } if(factor == 2) factor++; // Si factor es 2, el siguiente primo es 3 else factor+=2; // Si no, elegimos el siguiente nĂºmero impar } return resultado; } fraccion Sumar(fraccion f1, fraccion f2) { fraccion resultado; resultado.num = f1.num*f2.den+f1.den*f2.num; resultado.den = f1.den*f2.den; return Simplificar(resultado); }
Private
[
?
]
Run code
Submit