Informatică, întrebare adresată de mierlaaurie, 9 ani în urmă

Cerinţa
Se dau 4 numere naturale a b c d, reprezentând fracţiile a/b şi c/d. Calculaţi suma şi produsul celor două fracţii, aduse la forma ireductibilă.

Date de intrare
Programul citește de la tastatură numerele a b c d.

Date de ieşire
Programul afișează pe ecran numerele m n, reprezentând numărătorul şi numitorul sumei celor două fracţii, redusă la forma ireductibilă, iar pe a doua linie numerele p q, reprezentând numărătorul şi numitorul produsului celor două fracţii, redus la forma ireductibilă.

Restricţii şi precizări
1 ≤ a, b, c, d ≤ 10000

Exemplu
Intrare

1 2 4 3
Ieșire

11 6
2 3

Răspunsuri la întrebare

Răspuns de boiustef
1

#include <iostream>

using namespace std;

int cmmdc(int a, int b)

{

   int x;

   if (a==0 && b==0) x=-1;

    else

    {

        int t; if (a>b) { t=a; a=b; b=t; }

        if (a==0) x=b;

        else

        {

            int r;

           while(b!=0)

           {

               r=a%b;

               a=b;

               b=r;

           }

            x=a;

        }

    }

    return x;

}

int main()

{

   int a, b, c, d, numaratorSuma, numitorSuma, numaratorProdus, numitorProdus;

   int cmmdcSuma;

   cout << "dati numaratorul si numitorul prinei fractii: " << "\n";

   cin >> a >> b ;

   cout << "dati numaratorul si numitorul fractiei a doua: " << "\n";

   cin >> c >> d;

   numaratorSuma=a*d+b*c;

   numitorSuma=b*d;

   cmmdcSuma=cmmdc(numaratorSuma,numitorSuma);

   numaratorSuma = numaratorSuma / cmmdcSuma;

   numitorSuma = numitorSuma / cmmdcSuma;

   cout << numaratorSuma << " " << numitorSuma << "\n";

   numaratorProdus = a*c;

   numitorProdus = numitorSuma;

   int cmmdcProdus = cmmdc(numaratorProdus, numitorProdus);

   numaratorProdus = numaratorProdus / cmmdcProdus;

   numitorProdus = numitorProdus / cmmdcProdus;

   cout << numaratorProdus << " " << numitorProdus;

   return 0;

}


Alte întrebări interesante