Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค่าจำนวนเต็มบวกขั้นต่ำที่เป็นไปได้ของ X สำหรับ A และ B ที่กำหนดใน X =P*A + Q*B ใน C++


คำชี้แจงปัญหา

ค่าที่กำหนดของ A และ B ให้หาค่าจำนวนเต็มบวกขั้นต่ำของ X ที่สามารถทำได้ในสมการ X =P*A + Q*B โดยที่ P และ Q สามารถเป็นศูนย์หรือจำนวนเต็มบวกหรือค่าลบใดๆ

ตัวอย่าง

ถ้า A =2 และ B =4 คำตอบจะเป็น 2

อัลกอริทึม

  • เราต้องหา P และ Q ให้ P*A> P*B และ P*A – P*B เป็นจำนวนเต็มบวกขั้นต่ำ
  • ปัญหานี้แก้ไขได้ง่ายๆ ด้วยการคำนวณ GCD ของตัวเลขทั้งสอง)

ตัวอย่าง

#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;
}

ผลลัพธ์

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -

Answer = 2