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
    hlin  commented on March 30, 2024, 3:55 p.m.

    n=int(input()) if 0<=n<=100000: if n%400==0: print('YES') elif n%4==0 and n%100!=0: print('YES') elif n%100==0 or n%4!=0: print('NO') làm sao để qua case 4,5 ạ


  • -1
    _dang_  commented on Feb. 24, 2024, 10:05 a.m.

    include <bits/stdc++.h>

    using namespace std; long long n; int main () { cin >> n; if (0 < n && n < 100000){ if ((n % 400 == 0 || n % 4 == 0) && n % 100 != 0) cout << "YES"; else cout << "NO"; } else cout << "NOT INVALID"; return 0; } sao nó cứ sai case 4 với case 5 vậy ạ


  • -1
    Chutecobac  commented on Feb. 19, 2024, 1:32 p.m.

    include <bits/stdc++.h>

    using namespace std; int main (){ long long n; cin >> n; if (( 0 < n ) && ( n < 100000 )) { if (( n % 400 == 0) || (( n % 4 == 0 ) && ( n % 100 != 0 ))) { cout <<"YES"<< endl; } else { cout <<"NO"<< endl;
    }
    } else { cout <<"INVALID"<< endl; } return 0;
    }

    Mọi người học tốt nhá!!!


  • 2
    hieucode  commented on Jan. 25, 2024, 3:10 p.m.

    C++ (BÍ HÃY THAM KHẢO ) TÔN TRỌNG NGƯỜI VIẾT

    if ( n > 0 && n<= 100000 ){
    if (( n % 400 == 0 || n % 4 == 0) && (n % 100 != 0)){
     cout << "YES";
    }
    else 
    cout << "NO";
    

    }

    else

    cout << "INVALID";
    return 0;
    

    }


  • -1
    ntkhoa  commented on Jan. 21, 2024, 9:44 a.m.

    sao của e ko qua đc case 5 nhỉ long year;

    scanf("%ld", &year);
    
    if(year > 0){
        if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0 )){
            printf("YES");
        }
        else{
            printf("NO");
        }   
    }
    else{
        printf("INVALID");
    }
    

    • -1
      QMin  commented on Jan. 28, 2024, 3:24 p.m.

      if (year > 0 && year <= 100000)


  • -1
    hohoanghai5042011  commented on Jan. 12, 2024, 8:15 a.m.

    #include <bits/stdc++.h>

    using namespace std; unsigned long long n; int main() { cin>>n; if(n==0||n>100000) cout<<"INVALID"; else{ if((n%400==0)||(n%4==0)&&n%100!=0) cout<<"YES"; else cout<<"NO"; } }


  • -2
    nhantrong  commented on Jan. 12, 2024, 8:08 a.m.

    include <bits/stdc++.h>

    using namespace std; bool ktnamnhuan(int year) { if (year%4==0&&(year%100!=0||year%400==0)) { return 1; } return 0; } int main() { int year; cin>>year; if ((year==0)||(year>100000)) { cout<<"INVALID"; return 0; } else { if (ktnamnhuan(year)==1) { cout<<"YES"; } else if (ktnamnhuan(year)==0) { cout<<"NO"; } } return 0; }


  • -2
    hoangnguyen27  commented on Jan. 9, 2024, 2:18 a.m.

    ...? :V


  • -2
    hoangnguyen27  commented on Jan. 9, 2024, 2:16 a.m.

    WTF


  • 0
    g57svu  commented on Dec. 21, 2023, 2:03 p.m.

    sao e cứ bị sai case 4 5 ạ

    long long year;
    cin >>year;
    if((year<=0)&&(year >100000)) cout<<"INVALID";
    else{
        if(((year%4==0)&&(year%100!=0))||(year%400==0)) cout <<"YES";
        else cout <<"NO";
    }
    return 0;
    

    • -1
      haidang3004  commented on Jan. 9, 2024, 6:02 a.m.

      năm nhuận chỉ chia hết cho 400 thôi bạn nhé


      • -1
        DKN13  commented on Jan. 11, 2024, 4:17 a.m.

        Có 2 trường hợp nha e, chia hết 400 hoặc chia hết 4 mà kh chia hết cho 100


        • -1
          g57svu  commented on Jan. 12, 2024, 3:35 p.m.

          e làm rồi mà nó báo lỗi ạ


          • 0
            CaoTrung  commented on Jan. 14, 2024, 1:28 p.m.

            chỗ INVALID là dấu hoặc nha bạn


            • -1
              g57svu  commented on Jan. 29, 2024, 4:30 p.m.

              e cảm ơn


  • -1
    hoclaptrinhc  commented on Dec. 9, 2023, 2:36 p.m.

    năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100 nhưng nếu chia hết cho 400 thì vẫn là năm nhuận


  • -1
    TQThong2k11  commented on Dec. 1, 2023, 2:46 a.m.

    include <bits/stdc++.h>

    define str string

    typedef long long ll; typedef double dou;

    using namespace std; bool check(int n){ if(n % 4 == 0 && n % 100 != 0 || n % 400 == 0){ return true; } else return false; } ll n; int main(){ cin >> n; if(n >= 100000 || n < 1){ cout << "INVALID"; } else if(check(n) == true){ cout << "YES"; } else cout << "NO"; return 0; } code c++


  • 0
    votunganh  commented on Nov. 28, 2023, 4:10 a.m.

    Các bạn ơi! Sao mình làm mà cứ sai case 5 mãi thế này Bài mình đây này:

    include <iostream>

    using namespace std; int main(){ int y; cin >> y; if (y < 1) cout << "INVALID"; else if (y % 4 == 0) cout << "YES"; else cout << "NO"; return 0; }


    • -1
      Phantom  commented on Nov. 29, 2023, 5:43 a.m.

      y > 0. Trong code bạn là y > 1. năm 1 vẫn tính là hợp lí y < 100000 nhưng bạn lại quên kiểm tra. Một năm là năm nhuận nếu nó chia hết cho 4 NHƯNG không chia hết cho 100, hoặc nếu nó chia hết cho 400


  • -3
    toansoict5232  commented on Nov. 9, 2023, 5:44 p.m.

    Sao em cứ sai ở case 4 thế ạ ? :((


    • -1
      Mikehoccode  commented on Nov. 21, 2023, 1:37 p.m.

      bạn coi lại giá trị year á. nếu mà nó <=0 hoặc >100000 thì k hợp lệ


  • -3
    taithikgirl  commented on Oct. 28, 2023, 2:30 a.m.

    hao no


  • -6
    Tien  commented on Oct. 15, 2023, 7:38 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -8
    Geno2806  commented on Oct. 12, 2023, 3:47 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -7
    hoa111  commented on Aug. 27, 2023, 9:45 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -8
    FuuFanMu  commented on Aug. 23, 2023, 2:55 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -6
    qwerty  commented on Aug. 21, 2023, 10:32 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -15
    nhatduy27  commented on July 16, 2023, 8:37 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


    • -10
      duydonv  commented on July 29, 2023, 4:15 p.m.

      This comment is hidden due to too much negative feedback. Show it anyway.


      • 0
        z1cle_  commented on Oct. 31, 2023, 12:04 p.m.

        có thể nằm ngoài giới hạn hợp lệ và và, và nó đã là giới hạn thấp hơn:)) ad sương gió.


      • -4
        luyencode123  commented on Oct. 19, 2023, 3:20 a.m.

        10^5 là giá trị năm hợp lệ, 10^6 là giá trị mà testcase có thể tới. 2 số này khác nhau mà. Test case 5 chính là cho cái này năm nhập vào lớn hơn 10^5.


  • -12
    hoanglb2k2  commented on July 9, 2023, 2:18 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -9
    LightyWind  commented on July 7, 2023, 2:21 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.