在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)

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

  • 将输入作为用户的总和。

  • 将“长度”计算为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;
   //寻找长度
   length = sumofsides / 3;
   sumofsides -= length;
   //寻找广度
   breadth = sumofsides / 2;
   //剩余的sumofsides是高度
   height = sumofsides - breadth;
   return length * breadth * height;
}
//驱动程序
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