DK09 - Kiểm tra năm nhuận

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Trái đất của chúng ta cần ~365.25~ ngày để quay hết một vòng quanh mặt trời. Phần dư ~0.25~ thực ra đã làm tròn, con số thực tế là ~365.2425~ ngày để trái đất quay được một vòng. Giá trị sai số này ~0.0075~ ngày ~(0.25 - 0.2425)~ khi nhân với ~400~ chúng ta sẽ có thêm ~3~ ngày nữa. Do đó, để lịch của ta chính xác, các chu kỳ ~100, 200~ và ~300~ chỉ có ~24~ năm nhuận thay vì ~25~. Riêng chu kỳ thứ ~400~ sẽ có ~25~ năm nhuận. Điều đó đảm bảo rằng mỗi chu kỳ ~400~ năm sẽ có ~97 (24 + 24 + 24 + 25)~ năm nhuận. Như vậy, cứ ~400~ năm chúng ta sẽ có ~97~ năm nhuận, chứ không phải ~100~ nhé.

Hãy viết chương trình kiểm tra giá trị nguyên ~year~ nhập từ bàn phím có phải là năm nhuận không (theo dương lịch).

Lưu ý: Giá trị năm ~(year)~ được coi là hợp lệ nếu: ~ 0 < year <= 100000 ~. Bộ test của đề bài sẽ có thể nằm ngoài giới hạn hợp lệ này, hãy chú ý kiểm tra kỹ nhé.

Input

Một số nguyên ~year~ là giá trị cần kiểm tra

Output

  • Nếu ~year~ là năm nhuận, in ra YES
  • Nếu ~year~ là năm không nhuận, in ra NO
  • Nếu giá trị ~year~ không hợp lệ, in ra INVALID

Sample

Input #1
2020
Output #1
YES

Giới hạn

  • Toàn bộ các testcase có ~-10^6 \le year \le 10^6~

Bình luận

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



  • 0
    annoeye  đã bình luận lúc 22, Tháng 3, 2025, 21:43 chỉnh sửa

    Lưu ý (year <= 0 || year >= 100000) ? "INVALID" "Phải có = 0 thì mới qua được case 4"


  • 0
    vqnhat  đã bình luận lúc 17, Tháng 3, 2025, 14:54

    include <iostream>

    using namespace std;

    int main() { long long year; cin >> year; // Nhập năm

    // Kiểm tra giá trị hợp lệ
    if (year <= 0 || year > 100000) {
        cout << "INVALID" << endl;
    } else {
        // Kiểm tra năm nhuận
        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
            cout << "YES" << endl; // Năm nhuận
        } else {
            cout << "NO" << endl; // Không phải năm nhuận
        }
    }
    
    return 0;
    

    }


  • 1
    NguyenCongDat  đã bình luận lúc 27, Tháng 2, 2025, 0:43

    ai giup minh test 4 voi


  • 1
    haoff2k11mvp  đã bình luận lúc 5, Tháng 2, 2025, 12:24

    ai giải mik với . mik ko bik làm


  • 2
    vudinhdo1234  đã bình luận lúc 23, Tháng 11, 2024, 16:31

    ae nhớ xét nó % 400 == 0 trước ròi ms n % 4 == 0 sau r xét trường hợp hợp lệ nhé chúc may mắn


  • 1
    sapphire345  đã bình luận lúc 23, Tháng 11, 2024, 7:44 chỉnh sửa

    case 5 là sai chỗ nào ạ


    • 1
      0339955844  đã bình luận lúc 23, Tháng 1, 2025, 8:23

      thêm điều kiện 0<n<100000 vào là đc nhé ae nào bị lỗi case 5 thì để ý