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 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告