Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm xem liệu có thể nhận được tỷ lệ từ phạm vi chi phí và số lượng nhất định trong C ++ hay không

Khái niệm

Đối với phạm vi chi phí nhất định từ Chi phí thấp đến Chi phí cao hơn và phạm vi số lượng từ thấp Số lượng lớn đến Số lượng lớn hơn, hãy xác định xem liệu có thể đạt được một tỷ lệ nhất định r trong đó r =chi phí / số lượng và Chi phí thấp <=chi phí <=upCost và lowQuant <=số lượng <=upQuant.

Đầu vào

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

Đầu ra

Yes

Giải thích

Ở đây, chi phí =r * số lượng =3 * 3 =9 trong đó chi phí tính bằng [1, 10] và số lượng tính bằng [2, 8]

Đầu vào

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

Đầu ra

No

Giải thích

Ở đây, chi phí =r * số lượng =8 * 6 =48 trong đó chi phí không ở [15, 31] và mặc dù số lượng ở [6, 13]

Phương pháp

Đối với công thức đã cho, có thể dễ dàng suy ra phương trình sau -

chi phí =số lượng * r. Trong đó, r được biểu thị là tỷ lệ giữa chi phí và số lượng.

Đối với phương trình trên, có thể dễ dàng suy ra logic. Xác minh sản phẩm của mọi giá trị về số lượng với r và cần lưu ý rằng nếu bất kỳ giá trị nào của sản phẩm nằm giữa Chi phí thấp và Chi phí cao, thì câu trả lời là Có, nếu không thì là Không.

Ví dụ

// 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;
}

Đầu ra

Yes