Hướng dẫn giải của BEGIN17: Diện tích khu vườn
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Một khu đất hình chữ nhật có cạnh a và b, trong đó có một hình tròn nằm vừa khít giữa khu đất (chạm hai cạnh đối diện). Tính diện tích phần còn lại, biết pi = 3.14. Ý tưởng: lấy diện tích hình chữ nhật trừ đi diện tích hình tròn.
Cách làm
Lấy giá trị tuyệt đối của a và b để tránh số âm. Diện tích hình chữ nhật là ~a \times b~. Hình tròn có đường kính bằng cạnh nhỏ hơn, nên bán kính là ~r = \min(a, b) / 2~. Diện tích hình tròn là ~3.14 \times r \times r~. Đáp số là hình chữ nhật trừ hình tròn, in với 2 chữ số thập phân.
Bẫy cần nhớ: bán kính là một nửa cạnh nhỏ, không phải cạnh lớn. Ví dụ a = 2, b = 4 thì r = 1, diện tích còn lại là 8 - 3.14 = 4.86.
#include <bits/stdc++.h>
using namespace std;
int main() {
double a, b;
cin >> a >> b;
// Lay do dai canh khong am
a = fabs(a);
b = fabs(b);
// Dien tich hinh chu nhat
double hcn = a * b;
// Hinh tron co duong kinh bang canh nho hon, ban kinh = canh nho / 2
double r = min(a, b) / 2;
// Dien tich hinh tron, pi = 3.14
double tron = 3.14 * r * r;
// Dien tich phan con lai = hinh chu nhat - hinh tron
double conLai = hcn - tron;
cout << fixed << setprecision(2) << conLai << "\n";
return 0;
}
Bình luận