Computer >> Máy Tính >  >> Lập trình >> C ++

Giá trị nguyên dương nhỏ nhất có thể có của X đối với A và B đã cho trong X =P * A + Q * B trong C ++

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