입력
N = 10, A = 5, B = 10, E = 3;
출력
Maximum litres of water: 2
설명 − B-E=7, 7>A n/a=10/5 =2개의 플라스틱 병을 구입할 수 있습니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수 money, bottle, gbottle 및 gempty는 우리가 보유한 금액과 요금에 사용됩니다.
-
함수 maxWater(int mny,int pb,int gb,int ge)는 모든 값을 매개변수로 취하고 구매할 수 있는 물의 양을 인쇄합니다.
-
가변 리터는 계산된 물의 양을 리터로 저장하는 데 사용됩니다.
-
유리병의 새로운 값(원래 가치-반환 값)으로 pb를 전달합니다.
-
전달된 gb 값이 pb 값보다 작으면 (mny-ge)/gb 유리병을 구입하십시오.
-
이 금액을 빼면 남은 금액이 계산됩니다. mny-=ltrs*gb
-
이제 구입할 수 있는 플라스틱 병은 mny/pb입니다.
-
전달된 pb 값이 pb 값보다 크면 mny/pb 플라스틱 병만 구입하십시오.
-
두 경우 모두 결과를 아니오로 인쇄하십시오. 병의 아니오입니다. 리터의 물. 각 병의 용량은 1리터입니다.
예
// CPP implementation of the above approach
#include<bits/stdc++.h>
using namespace std;
void maxWater(int mny,int pb,int gb,int ge){
int litrs;
// if buying glass bottles is profitable
if (gb < pb){
// no. of glass bottles
int tmp=mny-ge/gb;
litrs=tmp>0?tmp:0;
mny-=litrs*gb;
// no. of plastic bottles
litrs+=mny/pb;
cout<<"Maximum Liters of water : "<<litrs<<endl;
}
// only plastic bottles
else
cout<<"Maximum Liters of water only Plastic bottles: "<<(mny /pb)<<endl;
}
int main(){
int money = 20, pbottle=5, gbottle=10, gempty = 8;
gbottle=gbottle-gempty; //new cost of glass botlles
maxWater( money,pbottle,gbottle,gempty );
}
출력
Maximum Liters of water: 14