Hướng dẫn giải của [200 đề thầy Đức] Bài 65: Tính diện tích
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
Tính diện tích phần đất còn lại của một khu vườn hình thang cân, sau khi trừ đi cái giếng hình tròn ở giữa vườn. Đầu vào là ba số thực a, b, c (đáy nhỏ, đáy lớn, cạnh bên).
Cách làm
Đầu tiên, tính chiều cao của hình thang. Vì hình thang cân nên hiệu hai đáy được chia đôi, tạo thành một tam giác vuông có cạnh huyền là cạnh bên c. Chiều cao h bằng căn bậc hai của c bình phương trừ đi bình phương nửa hiệu hai đáy.
Diện tích hình thang bằng (a + b) nhân h chia 2.
Bán kính cái giếng bằng 1/4 chiều cao, nên r bằng h chia 4. Diện tích giếng là pi nhân r bình phương, với pi = 3.14.
Phần đất còn lại bằng diện tích hình thang trừ đi diện tích giếng. Kết quả in với đúng 2 chữ số sau dấu phẩy bằng printf với định dạng %.2f.
#include <bits/stdc++.h>
using namespace std;
int main() {
double a, b, c;
cin >> a >> b >> c;
// Chiều cao hình thang: nửa hiệu hai đáy là một cạnh góc vuông, cạnh bên là cạnh huyền
double d = (b - a) / 2;
double h = sqrt(c * c - d * d);
// Diện tích hình thang = (đáy nhỏ + đáy lớn) * chiều cao / 2
double dientich = (a + b) * h / 2;
// Bán kính cái giếng bằng 1/4 chiều cao
double r = h / 4;
double pi = 3.14;
// Phần đất còn lại = diện tích hình thang - diện tích cái giếng
double ketqua = dientich - pi * r * r;
printf("%.2f\n", ketqua);
return 0;
}
Bình luận