在C ++中最多找到两个有理数

在这个问题上,我们得到两个有理数。我们的任务是找到两个有理数的最大值。 

在此,有理数采用p / q的形式。

让我们举个例子来了解这个问题, 

输入:  rat1 = 5/4,rat2 = 3/2

输出:  3/2

解释: 

5/4 = 1.25
3/2 = 1.5

解决方法-

解决该问题的一种简单方法是使用一种类似于我们在学校中曾经使用过的方法。

为此,我们将找到分母的LCM。然后根据分母的值乘分子。那么对于公分母,具有最大分子值的有理数为最大1。

该程序说明了我们解决方案的工作原理,

示例

#include <bits/stdc++.h>
using namespace std;

int findLCM(int a, int b) {

   return (a * b) / (__gcd(a, b));
}

void maxRational(int ratOneNum, int ratOneDen, int ratTwoNum, int ratTwoDen) {

   int k = findLCM(ratOneDen, ratTwoDen);

   int oneNum = ratOneNum * k / (ratOneDen);
   int twoNum = ratTwoNum * k / (ratTwoDen);

   if(oneNum > twoNum)
      cout<<ratOneNum<<"/"<<ratOneDen;
   else
      cout<<ratTwoNum<<"/"<<ratTwoDen;
   
}

int main() {
   
   int ratOneNum = 5;
   int ratOneDen = 4;
   int ratTwoNum = 3;
   int ratTwoDen = 2;
   cout<<"两个有理数的最大值为 ";
   maxRational(ratOneNum, ratOneDen, ratTwoNum, ratTwoDen);
   return 0;
}
输出结果
两个有理数的最大值为 3/2