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

ค้นหาจำนวนตรรกยะสูงสุดสองจำนวนใน C++


ในปัญหานี้ เราได้รับ จำนวนตรรกยะ . งานของเราคือ หาจำนวนตรรกยะสูงสุดสองตัว

ในที่นี้ จำนวนตรรกยะอยู่ในรูป 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