Kiểm tra năm nhuận và số ngày trong tháng
Trong hệ thống lịch dương hiện đại (Gregorian calendar), quy tắc xác định một năm Y có phải là năm nhuận hay không được định nghĩa:
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: if else, logical operators.
Nội dung đề bài
Mục tiêu kiến thức
- Rèn luyện biểu thức logic phức hợp kết hợp các toán tử
&&,||,!. - Áp dụng cấu trúc
switch-casehoặc cấu trúc mảng tra cứu để tìm số ngày trong tháng. - Xử lý các ngoại lệ dữ liệu không hợp lệ.
Mô tả bài toán
Trong hệ thống lịch dương hiện đại (Gregorian calendar), quy tắc xác định một năm Y có phải là năm nhuận hay không được định nghĩa:
- Năm Y chia hết cho 400 là năm nhuận.
- Hoặc: Năm Y chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận.
- Các trường hợp còn lại không phải là năm nhuận.
Cho biết tháng M và năm Y. Bạn hãy viết chương trình:
- Kiểm tra tính hợp lệ: Năm Y phải nguyên dương (Y ≥ 1) và tháng M phải nằm trong khoảng [1, 12]. Nếu không thỏa mãn, in ra màn hình:
Du lieu khong hop le! - Nếu hợp lệ, in ra 2 dòng:
- Dòng 1:
Nam <Y> la nam nhuanhoặcNam <Y> khong phai la nam nhuan - Dòng 2:
Thang <M> nam <Y> co <D> ngay.(với D là số ngày trong tháng M của năm Y).
Ghi nhớ số ngày trong các tháng:
- Tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày.
- Tháng 4, 6, 9, 11 có 30 ngày.
- Tháng 2 có 29 ngày nếu là năm nhuận, và 28 ngày nếu không phải năm nhuận.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
Một dòng duy nhất chứa 2 số nguyên M và Y cách nhau bởi dấu cách (M: tháng, Y: năm).
Output
- Nếu dữ liệu không hợp lệ: In
Du lieu khong hop le! - Nếu hợp lệ: In đúng 2 dòng như mô tả.
Ràng buộc
- -106 ≤ M, Y ≤ 106.
- Thời gian chạy: 1000ms.
- Bộ nhớ tối đa: 256MB.
Ví dụ 1
Input
2 2024Output
Nam 2024 la nam nhuan
Thang 2 nam 2024 co 29 ngay.Ví dụ 2
Input
2 1900Output
Nam 1900 khong phai la nam nhuan
Thang 2 nam 1900 co 28 ngay.Giải thích
Năm 1900 chia hết cho 4 và chia hết cho 100, nhưng không chia hết cho 400 nên không phải là năm nhuận.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
