Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 비용과 수량 범위에서 비율을 얻는 것이 가능한지 알아보십시오.

<시간/>

컨셉

lowCost에서 upCost까지의 주어진 비용 범위와 lowQuant에서 upQuant까지의 수량 범위와 관련하여, r=비용/수량, 그리고 lowCost <=비용 <=upCost 및 lowQuant <인 주어진 비율 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을 사용하여 수량의 모든 값의 제품을 확인하고 제품의 값이 lowCost와 upCost 사이에 있으면 대답은 Yes, 그렇지 않으면 No입니다.

예시

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