ในปัญหานี้ เราได้รับอัตราส่วนสองค่าคือ 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