找到 C++ 中两个有理数中的最大值


本题给定两个有理数。我们的任务是找出两个有理数中的最大值。

这里,有理数的形式为 p/q。

我们举一个例子来理解这个问题:

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

输出:3/2

解释:

5/4 = 1.25
3/2 = 1.5

解决方案方法——

解决此问题的简单方法是使用类似于我们学校使用的术语。

为此,我们将找到分母的最小公倍数。然后,根据分母值乘以分子。然后对于公分母,分子值最大的有理数就是最大的。

演示我们解决方案原理的程序:

示例

现场演示

#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<<"The maximum of the two rational Numbers is ";
   maxRational(ratOneNum, ratOneDen, ratTwoNum, ratTwoDen);
   return 0;
}

输出

The maximum of the two rational Numbers is 3/2

更新于:2021-01-25

150 次浏览

开启您的 职业 生涯

完成课程,获得认证

开始
广告