Tuyên bố vấn đề
Cho các giá trị của A và B, hãy tìm giá trị nguyên dương nhỏ nhất của X có thể đạt được trong phương trình X =P * A + Q * B, Ở đây P và Q có thể bằng 0 hoặc bất kỳ số nguyên dương hoặc âm nào.
Ví dụ
Nếu A =2 và B =4 thì câu trả lời sẽ là 2.
Thuật toán
- Chúng ta cần tìm P và Q sao cho P * A> P * B và P * A - P * B là số nguyên dương nhỏ nhất.
- Có thể dễ dàng giải quyết vấn đề này bằng cách tính GCD của cả hai số)
Ví dụ
#include <iostream>
using namespace std;
int getGcd(int a, int b) {
if (a == 0) {
return b;
}
return getGcd(b % a, a);
}
int main() {
cout << "Answer = " << getGcd(2, 4) << endl;
return 0;
} Đầu ra
Khi bạn biên dịch và thực thi chương trình trên. Nó tạo ra kết quả sau -
Answer = 2