Tam giác cân
Đề bài
Nhập vào ba số nguyên dương $x, y, z$ là độ dài ba cạnh của một tam giác. Hãy kiểm tra đây có phải là ba cạnh của một tam giác cân hay không (tam giác cân là tam giác có ít nhất hai cạnh bằng nhau; vì vậy tam giác đều cũng được coi là tam giác cân).
Dữ liệu vào:
Một dòng gồm ba số nguyên dương $x, y, z$.
Kết quả:
In ra LA TAM GIAC CAN nếu là tam giác cân, ngược lại in ra KHONG PHAI TAM GIAC CAN.
Giới hạn:
- $1 \le x, y, z \le 10^9$
- Dữ liệu đảm bảo $x, y, z$ là ba cạnh của một tam giác.
Giới hạn thời gian: 1 giây, bộ nhớ: 256 MB. Dữ liệu nhập từ bàn phím và in ra màn hình.
3 4 5KHONG PHAI TAM GIAC CAN3 4 3LA TAM GIAC CANNguồn: phỏng theo bài "Tam giác cân" – vinhdinhcoder.net (chủ đề Rẽ nhánh).
Lời mở đầu
Tam giác cân là tam giác có hai cạnh bằng nhau. Bài nhỏ xíu nhưng hay bị sót: phải xét đủ 3 cặp cạnh, và nhớ rằng tam giác đều cũng là tam giác cân. Ghi chú: đề gốc không nói rõ tam giác đều tính thế nào, mình theo định nghĩa toán học (đều cũng là cân) và ghi rõ trong đề.
Bấm vào nút bên dưới để nộp bài và được hệ thống CLUE OJ chấm tự động.
Nộp bài trên CLUE OJLộ trình lời giải, bấm vào từng phần để nhảy tới:
Bộ testBộ test chính thức có gì?
Bộ test có 20 test, mỗi test đúng được 1 phần điểm như nhau. Mọi test đảm bảo $x, y, z$ là ba cạnh tam giác.
| Test | Nội dung kiểm tra |
|---|---|
| 1–10 | Cạnh nhỏ: cặp bằng nhau ở cả 3 vị trí ($x = y$, $y = z$, $x = z$), tam giác đều, tam giác thường |
| 11–20 | Cạnh tới $10^9$: cặp bằng nhau là $x = z$, tam giác đều lớn, các cạnh chênh nhau 1 |
Ý tưởngXét đủ 3 cặp cạnh
Ba cạnh có 3 cặp: $(x, y)$, $(y, z)$, $(x, z)$. Tam giác cân khi ít nhất một cặp bằng nhau → nối 3 điều kiện bằng ||:
x == y || y == z || x == z
Em nhập dữ liệu rồi bấm Tiếp để xem chương trình xét từng điều kiện:
Lời giảiBa so sánh nối bằng ||
Chỉ một câu if / else.
- Đề đảm bảo $x, y, z$ là ba cạnh tam giác nên không cần kiểm tra bất đẳng thức tam giác.
long longkhông bắt buộc ở đây (chỉ so sánh, không tính toán), nhưng dùng cho quen tay cũng không sao.
Kết quả chạy thật: bản C++ đúng 20/20 test, chạy lâu nhất 0.003s. Bản Python đúng 20/20 test, chạy lâu nhất 0.020s. Full điểm.
Cái bẫyNhững cách làm sai hay gặp
Các cách làm sai mình đã chấm thử trên bộ test:
| Cách làm sai | Đúng | Ghi chú |
|---|---|---|
Quên cặp $x = z$ (chỉ xét x == y || y == z) | 14/20 | sai test 2, 7, 10, 13, 16, 18 |
| Coi tam giác đều không phải tam giác cân | 17/20 | sai test 5, 8, 15 |
Tổng kếtKết quả chạy thật trên bộ test
| Cách | Ngôn ngữ | Đúng | Lâu nhất | Ghi chú |
|---|---|---|---|---|
| Lời giải chuẩn | C++ | 20/20 | 0.003s | Full điểm |
| Python | 20/20 | 0.020s | Full điểm | |
| Quên cặp x == z | C++ | 14/20 | – | Mất 6 test |
| Loại tam giác đều | C++ | 17/20 | – | Mất 3 test |
- Không biết học gì trước, học gì sau, học lan man nên kiến thức bị hổng.
- Bí bài không ai gỡ, ngồi cả buổi vẫn không ra rồi bỏ cuộc.
- Code chạy được nhưng không đủ điểm, không biết sai ở đâu, chậm ở đâu.
- Không có đề thi thử và người chấm, nên không biết mình đang ở mức nào.
- Dễ nản giữa chừng khi không có ai theo sát.
- Lộ trình 111 buổi video sắp sẵn từ dòng code đầu tiên đến đề HSG thật của các tỉnh.
- Thầy trực tiếp gỡ bí, chữa bài cho từng em qua nhóm Zalo riêng.
- Hệ thống chấm bài tự động 24/7 và thi thử HSG hằng tuần để biết chính xác mình đang ở đâu.
- Đóng học phí một lần, thầy kèm lâu dài: từ thi chuyên Tin đến HSG quốc gia và cả khi lên đại học.
Nhận xét
Đăng nhận xét