在C++中查找满足ax – by = 0的x和y的最小值


假设我们有两个值a和b。我们必须找到x和y,使得ax – by = 0。所以如果a = 25,b = 35,那么x = 7,y = 5。

为了解决这个问题,我们必须计算a和b的最小公倍数(LCM)。a和b的最小公倍数将是使两边相等的最小的值。可以使用以下公式通过计算数字的最大公约数(GCD)来找到最小公倍数:

LCM(a,b) = (a*b)/GCD(a,b)

示例

 在线演示

#include<iostream>
#include<algorithm>
using namespace std;
void getSmallestXY(int a, int b) {
   int lcm = (a * b) / __gcd(a, b);
   cout << "x = " << lcm / a << "\ny = " << lcm / b;
}
int main() {
   int a = 12, b = 26;
   getSmallestXY(a, b);
}

输出

x = 13
y = 6

更新于:2019年12月19日

119次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告