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