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

C++で与えられた辺の合計で直方体の体積を最大化します


直方体の辺の合計が与えられます。直方体には、3つの辺の長さ、幅、高さがあります。直方体の体積は、3辺すべての積として計算されます。

直方体の体積=長さX幅X高さ

3つの側面すべてを可能な限り近づけると、最大の音量を達成できます。

例を使用して、私たちがしなければならないことを理解しましょう-

ここで与えられた問題は、辺の合計、たとえばSを提供します。辺をL、B、Hとします。ボリュームを最大化するには、辺をできるだけ近くに見つける必要があります。 S=6だとしましょう。可能な側面は-

である可能性があります
[L=1,B=1,H=4] volume=4
[L=1,B=2,H=3] volume=6
[L=2,B=2,H=2] volume=8

−他の組み合わせでも同じ結果になります。したがって、L、B、Hが互いに近いか等しい場合に、最大のボリュームが達成されます。

したがって-

入力 − S =6

出力 −与えられた辺の合計での直方体の最大体積は8です。

説明 −合計Sを可能な限り均等にL、B、Hに分割しましょう。

L=S/3 ----> (L=2 integer part, remaining S is 4)
B=(S-L)/2=(S-S/3)/2 ----> (B=2, remaining S is 2)
H=S-L-B = S-S/3-(S-S/3) ----> (H=2, remaining S is 0)

入力 − S =10

出力 −与えられた辺の合計を持つ直方体の最大体積は36です。

説明 −合計Sを可能な限り均等にL、B、Hに分割しましょう。

L=S/3 ----> (L=3 integer part, remaining S is 7)
B=(S-L)/2=(S-S/3)/2 ----> (B=3, remaining S is 4)
H=S-L-B = S-S/3-(S-S/3) ----> (H=4, remaining S is 0)

以下のプログラムで使用されるアプローチは次のとおりです

  • ユーザーから合計として入力します。

  • 長さをSum/3(整数演算)として計算し、SumをSum-Lengthとして更新します。

  • 幅をSum/2(整数演算)として計算し、SumをSum-Breadthとして更新します。

  • 次に、残りの合計を高さに割り当てます。

  • 注-辺の計算の順序は重要ではありません。

#include <bits/stdc++.h>
using namespace std;
int Maximize_Volume(int sumofsides){
   int length,breadth,height;
   length=breadth=height=0;
   // finding length
   length = sumofsides / 3;
   sumofsides -= length;
   // finding breadth
   breadth = sumofsides / 2;
   // remaining sumofsides is height
   height = sumofsides - breadth;
   return length * breadth * height;
}
// Driven Program
int main(){
   int sos = 12;
   cout << "Maximized volume of the cuboid with given sum of sides is "<<Maximize_Volume(sos) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の出力が得られます-

Maximized volume of the cuboid with given sum of sides is 64

  1. C++の平衡二分探索木で与えられた合計を持つペアを見つけます

    平衡二分探索木とターゲット合計があるとすると、合計がターゲット合計に等しいペアであるかどうかをチェックするメソッドを定義する必要があります。この場合。二分探索木は不変であることに注意する必要があります。 したがって、入力が次のような場合 その場合、出力は(9 + 26 =35)になります。 これを解決するには、次の手順に従います- スタックs1、s2を定義する done1:=false、done2:=false val1:=0、val2:=0 curr1:=root、curr2:=root 無限ループ、実行- done1がfalseの場合、do − curr1が

  2. 数字が7のみで、C++で合計が与えられた最小数

    問題の説明 ラッキーナンバーは、小数表現にラッキー数字4と7のみが含まれる正の整数です。タスクは、数字の合計がnに等しい最小のラッキーナンバーを見つけることです。 例 合計=22の場合、ラッキーナンバーは4 + 4 + 7 + 7=22として4477です アルゴリズム 1. If sum is multiple of 4, then result has all 4s. 2. If sum is multiple of 7, then result has all 7s. 3. If sum is not multiple of 4 or 7, then we can subtract