2011-10-15 10 views
5

Quiero simplificar una fracción en mi aplicación. La fracción es como, x/y donde xey son enteros. Quiero simplificar la fracción a su forma más simple. ¿Alguien puede darme pistas de cómo hacerlo? Gracias de antemano.Cómo simplificar una fracción

Respuesta

21
  • Calcular el máximo común divisor de x e y
  • Divide ambos de ellos por el GCD

Euclid's algorithm es una manera fácil de calcular el GCD.

-4
 #include<iostream> 
     using namespace std; 
     struct fraction 
     { 
       int n1, d1, n2, d2, s1, s2; 
      }; 
     void simplification(int a,int b) 
     { 
       bool e = true; 
      int t; int z; 
     for (int i = (a*b); i > 1;i--) 
     { if ((a%i==0)&&(b%i==0)) 
     { 
     t = a/i; 
     z = b/i; 

     } 
else 
     { 
      e = false; 
     } 
     } 
     cout << "simplest form=" << t << "/" << z << endl; 

     } 
     void sum(int num1, int deno1, int num2, int deno2) 
     { 
      int k,y; 
      k = num1* deno2 + num2*deno1; 
      y = deno2*deno1; 
      cout << "addition of given fraction = " << k << "/" << y << endl; 
     simplification(k, y); 
     } 
    void sub(int num1, int deno1, int num2, int deno2) 
    {    
      int k, y; 

      k = num1*deno2 - num2*deno1; 
     y = deno1*deno2; 
      cout << "Substraction of given fraction = " << k << "/" << y << endl; 

      } 
     void mul(int num1, int deno1, int num2, int deno2) 
      { 
      int k, y; 

      k = num1*num2; 
       y = deno1*deno2; 
       cout << "multiplication of given fration= " << k<< "/" <<y;          cout<< endl; 
       simplification(k, y); 
      } 

     void div(int num1, int deno1, int num2, int deno2) 
      { 
      int k, y; 
     ; 
    k = num1*deno1; 
    y = deno1*num2; 
     cout << "division of given fraction" << k << "/" << y << endl; 
    simplification(k, y); 
    } 


     int main() 
     { fraction a; 
      cout << "enter numirator of f1=";cin >> a.n1; 
      cout << "enter denominator of f1=";cin >> a.d1; 
      cout << "enter numirator of f2=";cin >> a.n2; 
     cout << "enter denominator of f2=";cin >> a.d2; 
      cout << "f1= " << a.n1 << "/" << a.d1 << endl; 
       cout << "f2= " << a.n2 << "/" << a.d2 << endl; 
      mul(a.n1, a.d1, a.n2, a.d2); 
     div(a.n1, a.d1, a.n2, a.d2); 
       sub(a.n1, a.d1, a.n2, a.d2); 
       sum(a.n1, a.d1, a.n2, a.d2); 
     system("pause"); 
      } 
+0

Bienvenido a SO. Proporcione un contexto para su respuesta, ya que las respuestas de solo código no cumplen con los estándares de SO. Y por favor reformatea tu código. Ver http://stackoverflow.com/help/how-to-answer –

Cuestiones relacionadas