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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP