找到 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 次瀏覽

開啟您的 職業 生涯

完成課程,獲得認證

開始
廣告