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