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

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
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~

Comments

Please read the guidelines before commenting.



  • 0
    vqnhat  commented on March 17, 2025, 2:54 p.m.

    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  commented on Feb. 27, 2025, 12:43 a.m.

    ai giup minh test 4 voi


  • 1
    haoff2k11mvp  commented on Feb. 5, 2025, 12:24 p.m.

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


  • 2
    vudinhdo1234  commented on Nov. 23, 2024, 4:31 p.m.

    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  commented on Nov. 23, 2024, 7:44 a.m. edited

    case 5 là sai chỗ nào ạ


    • 1
      0339955844  commented on Jan. 23, 2025, 8:23 a.m.

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