우리는 직육면체의 변의 합이 주어집니다. 직육면체는 세 변의 길이, 너비, 높이가 있습니다. 직육면체의 부피는 세 변의 곱으로 계산됩니다.
직육면체의 부피 =길이 X 너비 X 높이
3면이 최대한 가까이 있어야 최대 볼륨을 얻을 수 있습니다.
이제 예제를 사용하여 무엇을 해야 하는지 이해합시다 -
예
여기에 주어진 문제는 변의 합, 예를 들어 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으로 입력을 받습니다.
-
길이를 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; // 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