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
-
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
-
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(