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
广告