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.

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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.