DK10 - Tìm số ngày của tháng

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, PyPy, Python, Ruby, Rust, Scratch, Swift

Thử thách lần này của bạn là xác định số ngày của một tháng (theo dương lịch). Bạn sẽ được cung cấp 2 giá trị nguyên dương là tháng (~ month ~) và năm (~ year ~) cần kiểm tra.

Thời gian được cho là hợp lệ nếu:

  • ~ 1 \le month \le 12 ~
  • ~ year > 0~

Bạn cần lưu ý là giới hạn của bộ test sẽ nằm ngoài giới hạn hợp lệ, hãy kiểm tra các trường hợp không hợp lệ thật kỹ nhé.

Input

Lần lượt là 2 giá trị nguyên dương ~ month ~ và ~ year ~

Giới hạn:

  • ~ 0 < month \le 100 ~
  • ~ -10^5 < year \le 10^5 ~

Output

  • Nếu thời gian nhập vào không hợp lệ, xuất ra INVALID
  • Trường hợp khác, in ra số ngày của thời gian được yêu cầu

Sample

Input #1
10 2020
Output #1
31
Input #2
14 2020
Output #2
INVALID
Input #3
2 2020
Output #3
29

Bình luận

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



  • 0
    mduyiuems1tg  đã bình luận lúc 2, Tháng 5, 2025, 14:21

    CODE KHAM KHAO

    #include <bits/stdc++.h>
    #define ll long long
    #define DOWNTIME ios_base::sync_with_stdio(false);cin.tie(NULL); cout.tie(NULL); 
    
    using namespace std;
    
    const int mx = 1e6 + 1; 
    
    int day[12] = {31, -1, 31, 30, 31, 30, 31, 30, 30, 31, 30, 31};
    
    bool isleapyear(int year) {
        if ((year % 4 == 0 && year % 100) || !year % 400) return true;
        return false;
    }
    
    int main(){
       //freopen("input.txt","r", stdin);
       //freopen("output.txt", "w", stdout);
        DOWNTIME
        int month, year; cin >> month >> year;
    
        if (month < 13) {
            if (month == 2) {
                if (isleapyear(year)) cout << 29;
                else cout << 28;
            }
            else cout << day[month - 1];
        }
        else cout << "INVALID";
    
        return 0;
    }
    

  • 2
    imjust4funs  đã bình luận lúc 1, Tháng 3, 2025, 15:11

    Lưu ý cho người mới:Tháng 2 với những năm tròn thế kỉ như là 1900,2000,2100,.. thì ta lấy 2 số đầu chia cho 4, nếu chia hết thì đó là năm nhuận; Còn với những năm bình thường thì chỉ cần năm chia hết cho 4 sẽ là năm nhuận. Mình mong lời bình luận mình sẽ giúp cho các bạn!


  • -1
    super_god  đã bình luận lúc 8, Tháng 10, 2024, 2:39

    hello ae


  • -10
    bnbnbn  đã bình luận lúc 16, Tháng 12, 2024, 3:28

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 1
    phinguyen18  đã bình luận lúc 31, Tháng 5, 2024, 15:00

    cứu test 2 với các sư huynh ơi


  • 0
    phan_phat_dat  đã bình luận lúc 11, Tháng 2, 2024, 14:38

    cho mình hỏi làm sao để gắn code của mình lên bình luận vậy ạ (mình gắn vào mà nó không hiện khung như mấy bài khác)


  • 1
    hieucode  đã bình luận lúc 25, Tháng 1, 2024, 15:54

    C ++ ( BÍ HÃY THAM KHẢO )

    int n, m;

    cin >> n >> m;
    if (( n > 0 && n <= 12) && ( m > 0 && m <= 100000) ){
     if ((m % 400 == 0 || m % 4 == 0) && (m % 100 != 0)){
        if ( n == 2){
            cout << "29";
         }
     }
     else 
         cout << "28";
     if( n == 1 || n == 3 || n == 5 || n == 7 || n == 8 || n == 10 || n == 12)
        cout << "31"; 
     else if ( n == 4 || n == 6 || n == 9 || n == 11 )
        cout << "30";
    }
    else 
    cout << "INVALID";
    return 0;
    

    }


  • 0
    minh2312130  đã bình luận lúc 19, Tháng 1, 2024, 12:41

    testcase 5 là gì vậy mọi người


    • 0
      luckycat10000  đã bình luận lúc 11, Tháng 3, 2024, 16:56

      là bạn chưa gán điều kiện 1<=month<=12 nhé


  • 0
    Vjt_con_ngoc_ngheck  đã bình luận lúc 18, Tháng 1, 2024, 14:59

    test case 4 là j v m.n


  • 0
    opanime999  đã bình luận lúc 18, Tháng 12, 2023, 14:57

    test case 2 là gì mọi người


  • 0
    khiemkrkt  đã bình luận lúc 4, Tháng 12, 2023, 2:10

    Một cách khác gọn hơn mà ko phải xét từng tháng:

    Đối với tháng ~2~, ta kiểm tra riêng biệt

    Đối với các tháng từ ~1~ đến ~7~, nếu tháng là số lẻ thì là ~31~ ngày, còn không thì ~30~ ngày

    Đối với các tháng từ ~8~ đến ~12~, nếu tháng là số lẻ thì là ~30~ ngày, còn không thì ~31~ ngày


  • 0
    trh2kngoc578  đã bình luận lúc 29, Tháng 10, 2023, 12:37

    test case 4:Unexpected EOF in the participant's output thì mình sửa sao ạ?


    • 0
      phamthemanh72  đã bình luận lúc 3, Tháng 12, 2023, 16:16 chỉnh sửa

      bác coi là phần điều kiện của tháng và năm thử


  • 3
    taithikgirl  đã bình luận lúc 28, Tháng 10, 2023, 2:30

    hao no


  • 0
    Names_  đã bình luận lúc 17, Tháng 10, 2023, 7:56 chỉnh sửa

    sai case là được


  • 1
    lch101  đã bình luận lúc 28, Tháng 8, 2023, 12:32

    :v bài này mọi người chú ý có năm nhuận nha


    • 0
      Jaker  đã bình luận lúc 29, Tháng 8, 2023, 3:40

      omg thanks