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