How to simplify a fraction

前端 未结 3 665
旧巷少年郎
旧巷少年郎 2020-12-20 13:50

I want to simplify a fraction in my application. The fraction is like, x/y where x and y are integers. I want to simplify the fraction to its simplest form. Can anyone plea

相关标签:
3条回答
  • 2020-12-20 14:10
    • Compute the greatest common divisor for x and y
    • Divide both of them by the GCD

    Euclid's algorithm is an easy way to compute the GCD.

    0 讨论(0)
  • 2020-12-20 14:21

    Divide both by gcd(x,y)

    The Binary GCD algorithm is a fast way to compute the GCD on a computer.

    0 讨论(0)
  • 2020-12-20 14:24
         #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 讨论(0)
提交回复
热议问题