ในปัญหานี้ เราได้รับ จำนวนตรรกยะ . งานของเราคือ หาจำนวนตรรกยะสูงสุดสองตัว
ในที่นี้ จำนวนตรรกยะอยู่ในรูป p/q
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล: rat1 =5/4, rat2 =3/2
ผลลัพธ์: 3/2
คำอธิบาย:
5/4 =1.25
3/2 =1.5
แนวทางการแก้ปัญหา -
วิธีแก้ปัญหาง่ายๆ คือการใช้วิธีการแบบเดียวกับที่เราเคยทำในโรงเรียน
สำหรับสิ่งนี้ เราจะพบ L.C.M ของตัวส่วน แล้วคูณตัวเศษตามค่าตัวส่วน จากนั้นสำหรับตัวส่วนร่วม จำนวนตรรกยะที่มีค่าตัวเศษสูงสุดคือจำนวนสูงสุด
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int findLCM(int a, int b) {
return (a * b) / (__gcd(a, b));
}
void maxRational(int ratOneNum, int ratOneDen, int ratTwoNum, int ratTwoDen) {
int k = findLCM(ratOneDen, ratTwoDen);
int oneNum = ratOneNum * k / (ratOneDen);
int twoNum = ratTwoNum * k / (ratTwoDen);
if(oneNum > twoNum)
cout<<ratOneNum<<"/"<<ratOneDen;
else
cout<<ratTwoNum<<"/"<<ratTwoDen;
}
int main() {
int ratOneNum = 5;
int ratOneDen = 4;
int ratTwoNum = 3;
int ratTwoDen = 2;
cout<<"The maximum of the two rational Numbers is ";
maxRational(ratOneNum, ratOneDen, ratTwoNum, ratTwoDen);
return 0;
} ผลลัพธ์
The maximum of the two rational Numbers is 3/2