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

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>
#include <algorithm>
using namespace std;
int LCM(int a, int b) {
   return (a * b) / (__gcd(a, b));
}
int numeratorLCM(vector<pair<int, int> > vect) {
   int result = vect[0].first;
   for (int i = 1; i < vect.size(); i++)
      result = LCM(vect[i].first, result);
   return result;
}
int denominatorGCD(vector<pair<int, int> >vect) {
   int res = vect[0].second;
   for (int i = 1; i < vect.size(); i++)
      res = __gcd(vect[i].second, res);
   return res;
}
void rationalLCM(vector<pair<int, int> > vect) {
   cout << numeratorLCM(vect) << "/"<< denominatorGCD(vect);
}
int main() {
   vector<pair<int, int> > vect;
   vect.push_back(make_pair(2, 7));
   vect.push_back(make_pair(3, 14));
   vect.push_back(make_pair(5, 3));
   cout << "LCM of rational numbers: "; rationalLCM(vect);
}

出力

LCM of rational numbers: 30/1

  1. C++のCHAR_BIT

    CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() {    int x = 28;    int a = CHAR_BIT*sizeof(x);    stack<bool> s;    cout << "T

  2. LCMを見つけるためのC++プログラム

    2つの数値の最小公倍数(LCM)は、両方の倍数である最小公倍数です。 例:15と9の2つの数字があるとします。 15 = 5 * 3 9 = 3 * 3 したがって、15と9のLCMは45です。 2つの数値のLCMを見つけるプログラムは次のとおりです- 例 #include <iostream> using namespace std; int main() {    int a=7, b=5, lcm;    if(a>b)    lcm = a;    else