Computer >> Máy Tính >  >> Lập trình >> C ++

Tối đa hóa thể tích khối lập phương với tổng các cạnh cho trước trong C ++


Chúng ta được cho với tổng các cạnh của một hình lập phương. Hình lập phương có chiều dài, chiều rộng và chiều cao ba cạnh. Thể tích của khối lập phương được tính là tích của cả ba mặt.

Thể tích hình khối =Chiều dài X Chiều rộng X Chiều cao

Âm lượng tối đa có thể đạt được nếu cả ba cạnh càng gần nhau càng tốt.

Bây giờ chúng ta hãy hiểu những gì chúng ta phải làm bằng cách sử dụng một ví dụ -

Ví dụ

Bài toán đưa ra ở đây cung cấp cho chúng ta tổng các cạnh, giả sử S. Và cho các cạnh là L, B, H. Để thể tích lớn nhất, chúng ta phải tìm các cạnh gần nhất có thể. Giả sử chúng ta có S =6. Các mặt khả thi có thể là -

[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ưu ý - các kết hợp khác sẽ có kết quả tương tự. Vậy khối lượng cực đại đạt được khi L, B, H gần nhau hoặc bằng nhau.

Do đó -

Đầu vào - S =6

Đầu ra - Thể tích cực đại của khối lập phương có tổng các cạnh cho trước là 8.

Giải thích - Hãy chia tổng S thành L, B, H càng nhiều càng tốt.

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)

Đầu vào - S =10

Đầu ra - Thể tích lớn nhất của hình lập phương có tổng các cạnh cho trước là 36.

Giải thích - Hãy chia tổng S thành L, B, H càng nhiều càng tốt.

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)

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhận đầu vào dưới dạng Tổng từ người dùng.

  • Tính Độ dài dưới dạng Tổng / 3 (Số nguyên) và cập nhật Tổng dưới dạng Tổng-Độ dài.

  • Tính Chiều rộng dưới dạng Tổng / 2 (Số nguyên) và cập nhật Tổng dưới dạng Chiều rộng Tổng.

  • Bây giờ, hãy gán Tổng còn lại cho Chiều cao.

  • Lưu ý - Thứ tự tính toán cho các bên không quan trọng.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -

Maximized volume of the cuboid with given sum of sides is 64