Hướng dẫn giải của Tính diện tích hình


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.

Lời giải này đang bị ẩn cho đến khi bạn chọn mở ra.

Chúng tôi khuyên bạn nên tự thử giải bài trước. Việc mở lời giải có thể làm lộ mất ý tưởng chính trước khi bạn có cơ hội tự giải.

Bạn phải đăng nhập để mở lời giải này.

Đăng nhập

Tác giả: Hiếu Nguyễn, Zed, Khang2007, bnguyet

Hiểu bài toán

Bài toán yêu cầu tính diện tích của phần được gạch chéo trong một hình học. Dựa vào mẫu thử và các giải pháp đã được chấp nhận, ta có thể suy luận rằng hình đó là một hình tròn có đường kính bằng với cạnh a của một hình vuông (hoặc một hình quạt có bán kính a). Diện tích cần tính là diện tích của một hình quạt có góc 180 độ (tức là một nửa hình tròn). Do đó, diện tích cần tính là (pi * a^2) / 2.

Các cách tiếp cận

Cách Sử dụng hằng số Pi
#include <stdio.h>
#include <math.h>
int main()
{
    int a;
    scanf("%d", &a);
    double s = 1.0 * a * a * acos(-1) / 2;
    printf("%.3lf", s);
}
  • Time Complexity: O(1)
  • Space Complexity: O(1)

Cách tiếp cận này sử dụng hàm acos(-1) từ thư viện <math.h> để lấy giá trị chính xác của số pi. Sau đó, nó tính diện tích theo công thức (pi * a^2) / 2. Việc dùng 1.0 * a ép kiểu sang số thực để tránh bị chia số nguyên.

Cách Định nghĩa hằng số Pi
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <limits.h>
int main()
{
    double R, pi=3.141592653589793238462643383279;
    scanf("%lf",&R);
    double ans=(R*R*pi)/(double)2;
    printf("%.3lf",ans);
    return 0;
}
  • Time Complexity: O(1)
  • Space Complexity: O(1)

Cách tiếp cận này định nghĩa một hằng số Pi với độ chính xác cao thủ công. Nó đọc giá trị bán kính (hoặc cạnh a) kiểu double và tính diện tích. Đây là cách làm truyền thống khi không muốn dựa vào các hàm thư viện đặc biệt.

Phân tích độ phức tạp

Cách tiếp cận Time Space Tên
1 O(1) O(1) Sử dụng hằng số Pi
2 O(1) O(1) Định nghĩa hằng số Pi

Bài học kinh nghiệm

  • Bài toán quy về diện tích một nửa hình tròn: S = \frac{\pi a^2}{2}.
  • Có thể lấy giá trị Pi chính xác bằng hàm acos(-1) hoặc định nghĩa thủ công.

Lỗi thường gặp

  • Sử dụng kiểu số nguyên cho Pi hoặc khi tính toán dẫn đến sai số làm tròn.
  • Quên ép kiểu sang số thực khi tính diện tích với biến đầu vào là số nguyên.

Bình luận

Please read the guidelines before commenting.


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