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

ค้นหาว่าเป็นไปได้หรือไม่ที่จะได้อัตราส่วนจากช่วงของต้นทุนและปริมาณที่กำหนดใน C++


แนวคิด

ในส่วนที่เกี่ยวกับช่วงของต้นทุนที่กำหนดตั้งแต่ต้นทุนต่ำไปจนถึงต้นทุนสูง และช่วงของปริมาณจากปริมาณต่ำถึงปริมาณมาก ให้พิจารณาว่าเป็นไปได้ที่จะได้รับอัตราส่วนที่กำหนด r โดยที่ r=ต้นทุน/ปริมาณ และต้นทุนต่ำ <=ต้นทุน <=ต้นทุนที่เพิ่มขึ้นและปริมาณต่ำ <=ปริมาณ <=upQuant.

อินพุต

lowCost = 2, upCost = 10,
lowQuant = 3, upQuant = 9
r = 3

ผลลัพธ์

Yes

คำอธิบาย

ที่นี่ ราคา =r * ปริมาณ =3 * 3 =9 โดยที่ต้นทุนอยู่ใน [1, 10] และปริมาณอยู่ใน [2, 8]

อินพุต

lowCost = 15, upCost = 31,
lowQuant = 6, upQuant = 13
r = 8

ผลลัพธ์

No

คำอธิบาย

ที่นี่ ราคา =r * ปริมาณ =8 * 6 =48 โดยที่ต้นทุนไม่อยู่ใน [15, 31] และแม้ว่าปริมาณจะอยู่ใน [6, 13]

วิธีการ

สำหรับสูตรที่กำหนด สามารถอนุมานสมการต่อไปนี้ได้อย่างง่ายดาย -

ราคา=ปริมาณ * r. โดยที่ r ถูกระบุเป็นอัตราส่วนระหว่างต้นทุนและปริมาณ

ด้วยความเคารพจากสมการข้างต้น ตรรกะสามารถอนุมานได้ง่าย ตรวจสอบผลิตภัณฑ์ของทุกมูลค่าของปริมาณด้วย r และควรสังเกตว่าหากมูลค่าของผลิตภัณฑ์อยู่ระหว่างต้นทุนต่ำและต้นทุนสูง คำตอบคือ ใช่ ไม่เช่นนั้น แสดงว่าไม่ใช่

ตัวอย่าง

// C++ program to find if it is
// possible to get the ratio r
#include <bits/stdc++.h>
using namespace std;
// Here, returns true if it is
// possible to obtain ratio r
// from given cost and
// quantity ranges.
bool isRatioPossible1(int lowCost1, int upCost1,
int lowQuant1, int upQuant1,
int r1){
   for (int i = lowQuant1; i <= upQuant1; i++){
      // Used to calculate cost corresponding
      // to value of i
      int ans1 = i * r1;
      if (lowCost1 <= ans1 && ans1 <= upCost1)
      return true;
   }
   return false;
}
// Driver Code
int main(){
   int lowCost1 = 2, upCost1 = 10,
   lowQuant1 = 3, upQuant1 = 9,
   r1 = 3;
   if (isRatioPossible1(lowCost1, upCost1,
      lowQuant1, upQuant1, r1))
      cout << "Yes";
   else
      cout << "No";
   return 0;
}

ผลลัพธ์

Yes