C++ 中求給定長方體邊長和的最大體積


給定長方體的邊長之和。長方體有三條邊:長、寬和高。長方體的體積計算為所有三條邊的乘積。

長方體的體積 = 長 X 寬 X 高

當所有三條邊儘可能接近時,可以獲得最大體積。

現在讓我們用一個例子來理解我們必須做什麼 -

**例如**

這裡給出的問題為我們提供了邊長之和,例如 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)

下面程式中使用的方案如下

  • 從使用者處獲取和作為輸入。

  • 計算長度為和/3(整數運算),並將和更新為和-長度。

  • 計算寬度為和/2(整數運算),並將和更新為和-寬度。

  • 現在將剩餘的和分配給高度。

  • 注意 - 邊長的計算順序無關緊要。

示例

即時演示

#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

更新於: 2020-08-14

182 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.