C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で最大2つの有理数を見つける


この問題では、2つの有理数が与えられます。 。私たちの仕事は、最大2つの有理数を見つけることです。

ここで、有理数はp/qの形式です。

問題を理解するために例を見てみましょう。

入力: rat1 =5/4、rat2 =3/2

出力: 3/2

説明:

5/4 =1.25
3/2 =1.5

ソリューションアプローチ-

この問題の簡単な解決策は、学校で行っていたのと同様の方法を使用することです。

このために、 L.C.Mが見つかります 分母の。次に、分母の値に基づいて分子を乗算します。次に、最小公分母の場合、分子値が最大の有理数が最大値になります。

ソリューションの動作を説明するプログラム

#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

  1. C++で有理数のLCMを見つける

    ここでは、有理数のLCMを見つける方法を説明します。有理数のリストがあります。リストが{2/7、3 / 14、5 / 3}のようであるとすると、LCMは30/1になります。 この問題を解決するには、すべての分子のLCMを計算し、次にすべての分母のgcdを計算し、次に有理数のLCMを計算する必要があります- $$ LCM =\ frac {LCM \:of \:all \:𝑛𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟𝑠} {GCD \:of \:all \:𝑑𝑒𝑛𝑜𝑚𝑖𝑖 例 #include <iostream> #include <vector> #inc

  2. C ++で再帰またはユークリッドアルゴリズムを使用せずに、2つの数値のHCFを検索します

    ご存知のように、HCFまたはGCDは、ユークリッドの互除法を使用して簡単に計算できます。ただし、ここでは、ユークリッドアルゴリズムや再帰アルゴリズムを使用せずにGCDまたはHCFを生成する方法を説明します。 2つの数値が16と24として存在するとします。これら2つのGCDは8です。 ここでのアプローチは単純です。これら2つの大きい数が小さい方で割り切れる場合、それはHCFです。そうでない場合は、(小さい/ 2)から1まで始まり、現在の要素が両方の数を割る場合、それがHCFです。 例 #include <iostream> using namespace std; int gcd(