在C ++中用N卢比可以购买的最大公升水

我们给了N卢比。目标是用钱购买尽可能多的水,其中水瓶的费率如下-

  • 塑料瓶:1升卢比

  • 玻璃瓶:B卢比1升

  • 玻璃瓶:B卢比1升

现在,玻璃瓶的原价为BE卢比。回国后。

如果塑料瓶的成本仍低于BE,则只能购买塑料瓶。否则,购买NE / BE玻璃瓶,然后花在塑料瓶上。

输入值

N = 6, A = 5, B = 4, E = 3;

输出结果

Maximum litres of water: 3

说明-BE = 1,1 <A NE = 3,我们以3卢比的价格购买了3个1升玻璃瓶

输入值

N = 10, A = 5, B = 10, E = 3;

输出结果

Maximum litres of water: 2

说明-BE = 7,7> A n / a = 10/5 =可以购买2个塑料瓶

以下程序中使用的方法如下

  • 整数货币,瓶子,酒瓶和古怪的东西用于我们的费率和金额。

  • 函数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 (gb < pb){
      //没有。玻璃瓶
      int tmp=mny-ge/gb;
      litrs=tmp>0?tmp:0;
      mny-=litrs*gb;
      //没有。塑料瓶
      litrs+=mny/pb;
      cout<<"Maximum Liters of water : "<<litrs<<endl;
   }
   //只有塑料瓶
   else
      cout<<"Maximum Liters of water只有塑料瓶: "<<(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