Informatică, întrebare adresată de denisdumihist, 8 ani în urmă

Cerinţa
Se dau 4 numere naturale a b c d, reprezentând fracţiile a/b şi c/d. Determinați și afișați cea mai mare dintre cele două fracții.

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, separate prin exact un spațiu, reprezentând numărătorul şi numitorul fracției maxime, adusă la forma ireductibilă.

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



Exemplu
Intrare

7 14 24 18
Ieșire

4 3
Explicație
Fracția maximă este 24/18. Prin simplificare devine 4/3.
pls rapid

Răspunsuri la întrebare

Răspuns de alexandrumorus
1

#include <iostream>

using namespace std;

int main()

{

   int a,b,c,d,e,f,c1,c2,c3,c4,r;

   cin >> a >> b >> c >> d;

   e = a / b;

   f = c / d;

   c1 = a; c2 = b; c3 = c; c4 = d;

   do

   {

       r = a % b;

       a = b;

       b = r;

   }

   while( r );

   do

   {

       r = c % d;

       c = d;

       d = r;

   }

   while( r );

   if (e > f)

   {

       cout << c1 / a << ' ' << c2 / a;

   }

   else if (f > e)

   {

       cout << c3 / c << ' ' << c4 / c;

   }

   else

   {

       if (c1 % c2 > c3 % c4)

       {

           cout << c1 / a << ' ' << c2 / a;

       }

       else

       {

           cout << c3 / c << ' ' << c4 / c;

       }

   }

   return 0;

}

Alte întrebări interesante