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

โปรแกรมหาอัตราส่วนร่วมของตัวเลขสามตัวในภาษา C++


ในปัญหานี้ เราได้รับอัตราส่วนสองค่าคือ x:y และ y:z งานของเราคือสร้าง โปรแกรมเพื่อค้นหาอัตราส่วนร่วมของตัวเลขสามตัวใน C++ .

คำอธิบายปัญหา − เราต้องหาอัตราส่วนร่วมของตัวเลขสามตัวโดยใช้อัตราส่วนที่กำหนดให้ เมื่อใช้ x:y และ y:z เราจะพบ x:y:z

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

3:5 8:9

ผลลัพธ์

24: 40: 45

คำอธิบาย − เรามี x:y และ y:z สองอัตราส่วนที่แตกต่างกัน ในการสร้าง x:y:z เราจะทำ y เท่ากันในอัตราส่วนทั้งสองซึ่งจะทำให้อัตราส่วนนั้นเป็นไปได้ ในการทำเช่นนั้น เราจะคูณกัน

$\frac{\square}{\square1}=\frac{\square2}{\square}\Rightarrow\frac{\square\square2}{\square1\square2}=\frac{\square1\square2}{\square2 \square}$

นี่จะทำให้อัตราส่วน x’:y’:z’

ดังนั้น 3*8 :8*5 :5*9 =24 :40 :45 คืออัตราส่วน

แนวทางการแก้ปัญหา

ดังที่กล่าวไว้ในตัวอย่างข้างต้น เราจำเป็นต้องทำให้องค์ประกอบตรงกลางมีร่วมกันสำหรับอัตราส่วนทั้งสอง และสำหรับสิ่งนี้ เราจะทำการคูณไขว้ แต่บางครั้ง การคูณไขว้อาจทำให้ผลลัพธ์มีขนาดใหญ่ขึ้น ดังนั้น วิธีที่มีประสิทธิภาพคือการหา LCM แล้วหาอัตราส่วนเป็น −

$\frac{\square*\square\square\square}{\square1}:\square\square\square:\frac{\square*\square\square\square}{\square2}$

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
using namespace std;
int calcLcm(int a, int b){
   int lcm = 2;
   while(lcm <= a*b) {
      if( lcm%a==0 && lcm%b==0 ) {
         return lcm;
         break;
      }
      lcm++;
   }
   return 0;
}
void calcThreeProportion(int x, int y1, int y2, int z){
   int lcm = calcLcm(y1, y2);
   cout<<((x*lcm)/y1)<<" : "<<lcm<<" : "<<((z*lcm)/y2);
}
int main() {
   int x = 12, y1 = 15, y2 = 9, z = 16;
   cout<<"The ratios are\t"<<" x:y = "<<x<<":"<<y1<<"\ty:z = "<<y2<<":"<<z<<endl;
   cout<<"The common ratio of three numbers is\t";
   calcThreeProportion(x, y1, y2, z);
   return 0;
}

ผลลัพธ์

The ratios are x:y = 12:15 y:z = 9:16
The common ratio of three numbers is 36 : 45 : 80