C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でNルピーで購入できる水の最大リットル


Nルピーが与えられます。目標は、水筒の料金が次のようなお金で可能な限り最大の水を購入することです-

  • ペットボトル:1リットルのルピー
  • ガラス瓶:1リットルのBルピー
  • ガラス瓶:1リットルのBルピー

現在、ガラス瓶の元のコストはB-Eルピーになります。戻った後。

ペットボトルの価格がまだB-E未満の場合は、ペットボトルのみを購入してください。それ以外の場合は、N-E / B-Eglassボトルを購入し、残りをペットボトルに費やします。

入力

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

出力

Maximum litres of water: 3

説明 − B-E =1、1

入力

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

  1. C++で指定された長方形の正確なkカットで取得できる可能な最小領域の最大値

    このチュートリアルでは、与えられた長方形の正確なkカットで取得できる可能な最小領域の最大値を見つけるプログラムについて説明します。 このために、長方形の辺と作成できるカットの数が提供されます。私たちの仕事は、与えられた数のカットを行うことによって達成できる最小の面積を計算することです。 例 #include <bits/stdc++.h> using namespace std; void max_area(int n, int m, int k) {    if (k > (n + m - 2))       cout &

  2. C++でN*Nチェス盤に配置できる最大のビショップ

    チェス盤のサイズを示す入力Nが与えられます。ここでのタスクは、Nの任意の値について、2人のビショップが互いに攻撃できないようにNXNチェス盤に配置できるビショップの数を見つけることです。例を挙げて理解しましょう。 入力 − n =2 出力 − N * Nチェス盤に配置できる最大のビショップ− 2(上記のように) 説明 −上に示したように、矛盾しない位置は司教が配置されている場所だけです。せいぜい2X2チェス盤のビショップ。 入力 − n =5 出力 − N * Nチェス盤に配置できる最大ビショップ:8(上記のように) 以下のプログラムで使用されているアプローチは次のとおりで